android13-5.15 October 2022 release 7

Artifacts:
  https://ci.android.com/builds/submitted/9286275/kernel_aarch64/latest
ANDROID: GKI: Update symbol list for xiaomi

183 function symbol(s) added
  'int LZ4_compress_HC(const char *, char *, int, int, int, void *)'
  'int LZ4_compress_default(const char *, char *, int, int, void *)'
  'int LZ4_decompress_safe(const char *, char *, int, int)'
  'size_t ZSTD_CStreamWorkspaceBound(ZSTD_compressionParameters)'
  'size_t ZSTD_DStreamWorkspaceBound(size_t)'
  'size_t ZSTD_compressStream(ZSTD_CStream *, ZSTD_outBuffer *, ZSTD_inBuffer *)'
  'size_t ZSTD_decompressStream(ZSTD_DStream *, ZSTD_outBuffer *, ZSTD_inBuffer *)'
  'size_t ZSTD_endStream(ZSTD_CStream *, ZSTD_outBuffer *)'
  'ZSTD_parameters ZSTD_getParams(int, unsigned long long int, size_t)'
  'ZSTD_CStream * ZSTD_initCStream(ZSTD_parameters, unsigned long long int, void *, size_t)'
  'ZSTD_DStream * ZSTD_initDStream(size_t, void *, size_t)'
  'int ZSTD_maxCLevel()'
  'int __cleancache_get_page(struct page *)'
  'int __dquot_alloc_space(struct inode *, qsize_t, int)'
  'void __dquot_free_space(struct inode *, qsize_t, int)'
  'int __dquot_transfer(struct inode *, struct dquot * *)'
  'void __filemap_set_wb_err(struct address_space *, int)'
  'int __fscrypt_encrypt_symlink(struct inode *, const char *, unsigned int, struct fscrypt_str *)'
  'bool __fscrypt_inode_uses_inline_crypto(const struct inode *)'
  'int __fscrypt_prepare_link(struct inode *, struct inode *, struct dentry *)'
  'int __fscrypt_prepare_lookup(struct inode *, struct dentry *, struct fscrypt_name *)'
  'int __fscrypt_prepare_readdir(struct inode *)'
  'int __fscrypt_prepare_rename(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int)'
  'int __fscrypt_prepare_setattr(struct dentry *, struct iattr *)'
  'struct iomap_dio * __iomap_dio_rw(struct kiocb *, struct iov_iter *, const struct iomap_ops *, const struct iomap_dio_ops *, unsigned int, size_t)'
  'struct address_space * __page_file_mapping(struct page *)'
  'void __pagevec_release(struct pagevec *)'
  'int __percpu_counter_init(struct percpu_counter *, s64, gfp_t, struct lock_class_key *)'
  's64 __percpu_counter_sum(struct percpu_counter *)'
  'int __set_page_dirty_nobuffers(struct page *)'
  'int __sync_dirty_buffer(struct buffer_head *, int)'
  'int __test_set_page_writeback(struct page *, bool)'
  'int __traceiter_android_fs_dataread_end(void *, struct inode *, loff_t, int)'
  'int __traceiter_android_fs_dataread_start(void *, struct inode *, loff_t, int, pid_t, char *, char *)'
  'int __traceiter_android_fs_datawrite_end(void *, struct inode *, loff_t, int)'
  'int __traceiter_android_fs_datawrite_start(void *, struct inode *, loff_t, int, pid_t, char *, char *)'
  'void __xa_clear_mark(struct xarray *, unsigned long int, xa_mark_t)'
  'int add_swap_extent(struct swap_info_struct *, unsigned long int, unsigned long int, sector_t)'
  'int bdev_read_only(struct block_device *)'
  'void bio_associate_blkg_from_css(struct bio *, struct cgroup_subsys_state *)'
  'void bioset_exit(struct bio_set *)'
  'int bioset_init(struct bio_set *, unsigned int, unsigned int, int)'
  'const char * blk_op_str(unsigned int)'
  'int blkdev_issue_zeroout(struct block_device *, sector_t, sector_t, gfp_t, unsigned int)'
  'bool capable_wrt_inode_uidgid(struct user_namespace *, const struct inode *, int)'
  'int clear_page_dirty_for_io(struct page *)'
  'void d_instantiate_new(struct dentry *, struct inode *)'
  'void d_invalidate(struct dentry *)'
  'void d_tmpfile(struct dentry *, struct inode *)'
  'struct dquot * dqget(struct super_block *, struct kqid)'
  'void dqput(struct dquot *)'
  'int dquot_acquire(struct dquot *)'
  'struct dquot * dquot_alloc(struct super_block *, int)'
  'int dquot_alloc_inode(struct inode *)'
  'int dquot_claim_space_nodirty(struct inode *, qsize_t)'
  'int dquot_commit(struct dquot *)'
  'int dquot_commit_info(struct super_block *, int)'
  'void dquot_destroy(struct dquot *)'
  'int dquot_disable(struct super_block *, int, unsigned int)'
  'void dquot_drop(struct inode *)'
  'int dquot_file_open(struct inode *, struct file *)'
  'void dquot_free_inode(struct inode *)'
  'int dquot_get_dqblk(struct super_block *, struct kqid, struct qc_dqblk *)'
  'int dquot_get_next_dqblk(struct super_block *, struct kqid *, struct qc_dqblk *)'
  'int dquot_get_next_id(struct super_block *, struct kqid *)'
  'int dquot_get_state(struct super_block *, struct qc_state *)'
  'int dquot_initialize(struct inode *)'
  'bool dquot_initialize_needed(struct inode *)'
  'int dquot_load_quota_inode(struct inode *, int, int, unsigned int)'
  'int dquot_mark_dquot_dirty(struct dquot *)'
  'int dquot_quota_off(struct super_block *, int)'
  'int dquot_quota_on(struct super_block *, int, int, const struct path *)'
  'int dquot_quota_on_mount(struct super_block *, char *, int, int)'
  'int dquot_release(struct dquot *)'
  'int dquot_resume(struct super_block *, int)'
  'int dquot_set_dqblk(struct super_block *, struct kqid, struct qc_dqblk *)'
  'int dquot_set_dqinfo(struct super_block *, int, struct qc_info *)'
  'int dquot_transfer(struct inode *, struct iattr *)'
  'int dquot_writeback_dquots(struct super_block *, int)'
  'void end_page_writeback(struct page *)'
  'errseq_t errseq_set(errseq_t *, int)'
  'void evict_inodes(struct super_block *)'
  'int file_modified(struct file *)'
  'void fileattr_fill_flags(struct fileattr *, u32)'
  'int filemap_check_errors(struct address_space *)'
  'vm_fault_t filemap_fault(struct vm_fault *)'
  'vm_fault_t filemap_map_pages(struct vm_fault *, unsigned long int, unsigned long int)'
  'ssize_t filemap_read(struct kiocb *, struct iov_iter *, ssize_t)'
  'struct inode * find_inode_nowait(struct super_block *, unsigned long int, int(*)(struct inode *, unsigned long int, void *), void *)'
  'int freeze_bdev(struct block_device *)'
  'int freeze_super(struct super_block *)'
  'void fscrypt_decrypt_bio(struct bio *)'
  'bool fscrypt_dio_supported(struct kiocb *, struct iov_iter *)'
  'int fscrypt_drop_inode(struct inode *)'
  'struct page * fscrypt_encrypt_pagecache_blocks(struct page *, unsigned int, unsigned int, gfp_t)'
  'int fscrypt_file_open(struct inode *, struct file *)'
  'int fscrypt_fname_alloc_buffer(u32, struct fscrypt_str *)'
  'int fscrypt_fname_disk_to_usr(const struct inode *, u32, u32, const struct fscrypt_str *, struct fscrypt_str *)'
  'void fscrypt_fname_free_buffer(struct fscrypt_str *)'
  'u64 fscrypt_fname_siphash(const struct inode *, const struct qstr *)'
  'void fscrypt_free_bounce_page(struct page *)'
  'void fscrypt_free_inode(struct inode *)'
  'const char * fscrypt_get_symlink(struct inode *, void *, unsigned int, struct delayed_call *)'
  'int fscrypt_has_permitted_context(struct inode *, struct inode *)'
  'int fscrypt_ioctl_add_key(struct file *, void *)'
  'int fscrypt_ioctl_get_key_status(struct file *, void *)'
  'int fscrypt_ioctl_get_nonce(struct file *, void *)'
  'int fscrypt_ioctl_get_policy(struct file *, void *)'
  'int fscrypt_ioctl_get_policy_ex(struct file *, void *)'
  'int fscrypt_ioctl_remove_key(struct file *, void *)'
  'int fscrypt_ioctl_remove_key_all_users(struct file *, void *)'
  'int fscrypt_ioctl_set_policy(struct file *, void *)'
  'u64 fscrypt_limit_io_blocks(const struct inode *, u64, u64)'
  'bool fscrypt_match_name(const struct fscrypt_name *, const u8 *, u32)'
  'bool fscrypt_mergeable_bio(struct bio *, const struct inode *, u64)'
  'int fscrypt_prepare_new_inode(struct inode *, struct inode *, bool *)'
  'int fscrypt_prepare_symlink(struct inode *, const char *, unsigned int, unsigned int, struct fscrypt_str *)'
  'void fscrypt_put_encryption_info(struct inode *)'
  'void fscrypt_set_bio_crypt_ctx(struct bio *, const struct inode *, u64, gfp_t)'
  'int fscrypt_set_context(struct inode *, void *)'
  'int fscrypt_set_test_dummy_encryption(struct super_block *, const char *, struct fscrypt_dummy_policy *)'
  'int fscrypt_setup_filename(struct inode *, const struct qstr *, int, struct fscrypt_name *)'
  'void fscrypt_show_test_dummy_encryption(struct seq_file *, char, struct super_block *)'
  'int fscrypt_symlink_getattr(const struct path *, struct kstat *)'
  'int fscrypt_zeroout_range(const struct inode *, unsigned long int, sector_t, unsigned int)'
  'void fsverity_cleanup_inode(struct inode *)'
  'void fsverity_enqueue_verify_work(struct work_struct *)'
  'int fsverity_file_open(struct inode *, struct file *)'
  'int fsverity_ioctl_enable(struct file *, void *)'
  'int fsverity_ioctl_measure(struct file *, void *)'
  'int fsverity_ioctl_read_metadata(struct file *, void *)'
  'int fsverity_prepare_setattr(struct dentry *, struct iattr *)'
  'void fsverity_verify_bio(struct bio *)'
  'bool fsverity_verify_page(struct page *)'
  'void generate_random_uuid(unsigned char *)'
  'int generic_fadvise(struct file *, loff_t, loff_t, int)'
  'loff_t generic_file_llseek_size(struct file *, loff_t, int, loff_t, loff_t)'
  'void generic_set_encrypted_ci_d_ops(struct dentry *)'
  'struct inode * iget_locked(struct super_block *, unsigned long int)'
  'int inode_newsize_ok(const struct inode *, loff_t)'
  'bool inode_owner_or_capable(struct user_namespace *, const struct inode *)'
  'void inode_set_flags(struct inode *, unsigned int, unsigned int)'
  'ssize_t iomap_dio_complete(struct iomap_dio *)'
  'unsigned long int iov_iter_alignment(const struct iov_iter *)'
  'int kset_register(struct kset *)'
  'int migrate_page_move_mapping(struct address_space *, struct page *, struct page *, int)'
  'void migrate_page_states(struct page *, struct page *)'
  'void mnt_drop_write_file(struct file *)'
  'int mnt_want_write_file(struct file *)'
  'ssize_t noop_direct_IO(struct kiocb *, struct iov_iter *)'
  'void page_cache_ra_unbounded(struct readahead_control *, unsigned long int, unsigned long int)'
  'void page_cache_sync_ra(struct readahead_control *, unsigned long int)'
  'int page_symlink(struct inode *, const char *, int)'
  'unsigned int pagevec_lookup_range(struct pagevec *, struct address_space *, unsigned long int *, unsigned long int)'
  'unsigned int pagevec_lookup_range_tag(struct pagevec *, struct address_space *, unsigned long int *, unsigned long int, xa_mark_t)'
  'void percpu_counter_add_batch(struct percpu_counter *, s64, s32)'
  'void percpu_counter_destroy(struct percpu_counter *)'
  'void percpu_counter_set(struct percpu_counter *, s64)'
  'struct posix_acl * posix_acl_alloc(int, gfp_t)'
  'int posix_acl_equiv_mode(const struct posix_acl *, umode_t *)'
  'int redirty_page_for_writepage(struct writeback_control *, struct page *)'
  'int security_inode_init_security(struct inode *, struct inode *, const struct qstr *, initxattrs, void *)'
  'void seq_escape(struct seq_file *, const char *, const char *)'
  'void set_cached_acl(struct inode *, int, struct posix_acl *)'
  'int set_task_ioprio(struct task_struct *, int)'
  'void shrink_dcache_sb(struct super_block *)'
  'void sync_inodes_sb(struct super_block *)'
  'void tag_pages_for_writeback(struct address_space *, unsigned long int, unsigned long int)'
  'int thaw_bdev(struct block_device *)'
  'int thaw_super(struct super_block *)'
  'void touch_atime(const struct path *)'
  'void truncate_inode_pages_range(struct address_space *, loff_t, loff_t)'
  'void truncate_pagecache_range(struct inode *, loff_t, loff_t)'
  'int utf8_casefold(const struct unicode_map *, const struct qstr *, unsigned char *, size_t)'
  'struct unicode_map * utf8_load(const char *)'
  'int utf8_strncasecmp_folded(const struct unicode_map *, const struct qstr *, const struct qstr *)'
  'void utf8_unload(struct unicode_map *)'
  'loff_t vfs_setpos(struct file *, loff_t, loff_t)'
  'void wait_for_completion_io(struct completion *)'
  'void wait_for_stable_page(struct page *)'
  'void wait_on_page_writeback(struct page *)'
  'void wbc_account_cgroup_owner(struct writeback_control *, struct page *, size_t)'
  'bool xa_get_mark(struct xarray *, unsigned long int, xa_mark_t)'

7 variable symbol(s) added
  'struct tracepoint __tracepoint_android_fs_dataread_end'
  'struct tracepoint __tracepoint_android_fs_dataread_start'
  'struct tracepoint __tracepoint_android_fs_datawrite_end'
  'struct tracepoint __tracepoint_android_fs_datawrite_start'
  'const struct qstr dotdot_name'
  'struct kobject * fs_kobj'
  'int percpu_counter_batch'

Bug: 255705989
Bug: 258757861
Change-Id: I3d64c507459200867b07b322c0a6132248e2f5c5
Signed-off-by: Lianjun Huang <huanglianjun@xiaomi.corp-partner.google.com>
Signed-off-by: Lianjun Huang <huanglianjun@xiaomi.com>
Signed-off-by: Giuliano Procida <gprocida@google.com>
2 files changed
tree: 2c290c6c7088d77296e1e2ff001fa72b643588a8
  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.bazel
  31. build.config.aarch64
  32. build.config.allmodconfig
  33. build.config.allmodconfig.aarch64
  34. build.config.allmodconfig.arm
  35. build.config.allmodconfig.x86_64
  36. build.config.amlogic
  37. build.config.arm
  38. build.config.common
  39. build.config.constants
  40. build.config.db845c
  41. build.config.gce.x86_64
  42. build.config.gki
  43. build.config.gki-debug.aarch64
  44. build.config.gki-debug.x86_64
  45. build.config.gki.aarch64
  46. build.config.gki.aarch64.fips140
  47. build.config.gki.x86_64
  48. build.config.gki_kasan
  49. build.config.gki_kasan.aarch64
  50. build.config.gki_kasan.x86_64
  51. build.config.gki_kprobes
  52. build.config.gki_kprobes.aarch64
  53. build.config.gki_kprobes.x86_64
  54. build.config.khwasan
  55. build.config.rockpi4
  56. build.config.x86_64
  57. COPYING
  58. CREDITS
  59. Kbuild
  60. Kconfig
  61. Kconfig.ext
  62. MAINTAINERS
  63. Makefile
  64. OWNERS
  65. README
  66. 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 scripts/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)