Todd Kjos e3f059ee54 ANDROID: GKI: 3/15/2023 KMI update
Set KMI_GENERATION=2 for 3/15 KMI update

function symbol 'struct block_device* I_BDEV(struct inode*)' changed
  CRC changed from 0x56b2634e to 0x66b14c8d

function symbol 'void __ClearPageMovable(struct page*)' changed
  CRC changed from 0x6f60ec1b to 0xbf6e946f

function symbol 'void __SetPageMovable(struct page*, const struct movable_operations*)' changed
  CRC changed from 0xd0d79e98 to 0x8c770d3

... 3520 omitted; 3523 symbols have only CRC changes

type 'struct task_struct' changed
  member 'unsigned int in_lru_fault : 1' was added
  6 members ('unsigned int no_cgroup_migration : 1' .. 'unsigned int in_eventfd : 1') changed
    offset changed by 1

type 'struct mm_struct' changed
  byte size changed from 880 to 912
  member changed from 'struct { struct maple_tree mm_mt; unsigned long(* get_unmapped_area)(struct file*, unsigned long, unsigned long, unsigned long, unsigned long); unsigned long mmap_base; unsigned long mmap_legacy_base; unsigned long task_size; pgd_t* pgd; atomic_t membarrier_state; atomic_t mm_users; atomic_t mm_count; atomic_long_t pgtables_bytes; int map_count; spinlock_t page_table_lock; struct rw_semaphore mmap_lock; struct list_head mmlist; unsigned long hiwater_rss; unsigned long hiwater_vm; unsigned long total_vm; unsigned long locked_vm; atomic64_t pinned_vm; unsigned long data_vm; unsigned long exec_vm; unsigned long stack_vm; unsigned long def_flags; seqcount_t write_protect_seq; spinlock_t arg_lock; unsigned long start_code; unsigned long end_code; unsigned long start_data; unsigned long end_data; unsigned long start_brk; unsigned long brk; unsigned long start_stack; unsigned long arg_start; unsigned long arg_end; unsigned long env_start; unsigned long env_end; unsigned long saved_auxv[46]; struct mm_rss_stat rss_stat; struct linux_binfmt* binfmt; mm_context_t context; unsigned long flags; spinlock_t ioctx_lock; struct kioctx_table* ioctx_table; struct task_struct* owner; struct user_namespace* user_ns; struct file* exe_file; struct mmu_notifier_subscriptions* notifier_subscriptions; atomic_t tlb_flush_pending; struct uprobes_state uprobes_state; struct work_struct async_put_work; }' to 'struct { struct maple_tree mm_mt; unsigned long(* get_unmapped_area)(struct file*, unsigned long, unsigned long, unsigned long, unsigned long); unsigned long mmap_base; unsigned long mmap_legacy_base; unsigned long task_size; pgd_t* pgd; atomic_t membarrier_state; atomic_t mm_users; atomic_t mm_count; atomic_long_t pgtables_bytes; int map_count; spinlock_t page_table_lock; struct rw_semaphore mmap_lock; struct list_head mmlist; unsigned long hiwater_rss; unsigned long hiwater_vm; unsigned long total_vm; unsigned long locked_vm; atomic64_t pinned_vm; unsigned long data_vm; unsigned long exec_vm; unsigned long stack_vm; unsigned long def_flags; seqcount_t write_protect_seq; spinlock_t arg_lock; unsigned long start_code; unsigned long end_code; unsigned long start_data; unsigned long end_data; unsigned long start_brk; unsigned long brk; unsigned long start_stack; unsigned long arg_start; unsigned long arg_end; unsigned long env_start; unsigned long env_end; unsigned long saved_auxv[46]; struct mm_rss_stat rss_stat; struct linux_binfmt* binfmt; mm_context_t context; unsigned long flags; spinlock_t ioctx_lock; struct kioctx_table* ioctx_table; struct task_struct* owner; struct user_namespace* user_ns; struct file* exe_file; struct mmu_notifier_subscriptions* notifier_subscriptions; atomic_t tlb_flush_pending; struct uprobes_state uprobes_state; struct work_struct async_put_work; struct { struct list_head list; unsigned long bitmap; struct mem_cgroup* memcg; } lru_gen; }'
    type changed from 'struct { struct maple_tree mm_mt; unsigned long(* get_unmapped_area)(struct file*, unsigned long, unsigned long, unsigned long, unsigned long); unsigned long mmap_base; unsigned long mmap_legacy_base; unsigned long task_size; pgd_t* pgd; atomic_t membarrier_state; atomic_t mm_users; atomic_t mm_count; atomic_long_t pgtables_bytes; int map_count; spinlock_t page_table_lock; struct rw_semaphore mmap_lock; struct list_head mmlist; unsigned long hiwater_rss; unsigned long hiwater_vm; unsigned long total_vm; unsigned long locked_vm; atomic64_t pinned_vm; unsigned long data_vm; unsigned long exec_vm; unsigned long stack_vm; unsigned long def_flags; seqcount_t write_protect_seq; spinlock_t arg_lock; unsigned long start_code; unsigned long end_code; unsigned long start_data; unsigned long end_data; unsigned long start_brk; unsigned long brk; unsigned long start_stack; unsigned long arg_start; unsigned long arg_end; unsigned long env_start; unsigned long env_end; unsigned long saved_auxv[46]; struct mm_rss_stat rss_stat; struct linux_binfmt* binfmt; mm_context_t context; unsigned long flags; spinlock_t ioctx_lock; struct kioctx_table* ioctx_table; struct task_struct* owner; struct user_namespace* user_ns; struct file* exe_file; struct mmu_notifier_subscriptions* notifier_subscriptions; atomic_t tlb_flush_pending; struct uprobes_state uprobes_state; struct work_struct async_put_work; }' to 'struct { struct maple_tree mm_mt; unsigned long(* get_unmapped_area)(struct file*, unsigned long, unsigned long, unsigned long, unsigned long); unsigned long mmap_base; unsigned long mmap_legacy_base; unsigned long task_size; pgd_t* pgd; atomic_t membarrier_state; atomic_t mm_users; atomic_t mm_count; atomic_long_t pgtables_bytes; int map_count; spinlock_t page_table_lock; struct rw_semaphore mmap_lock; struct list_head mmlist; unsigned long hiwater_rss; unsigned long hiwater_vm; unsigned long total_vm; unsigned long locked_vm; atomic64_t pinned_vm; unsigned long data_vm; unsigned long exec_vm; unsigned long stack_vm; unsigned long def_flags; seqcount_t write_protect_seq; spinlock_t arg_lock; unsigned long start_code; unsigned long end_code; unsigned long start_data; unsigned long end_data; unsigned long start_brk; unsigned long brk; unsigned long start_stack; unsigned long arg_start; unsigned long arg_end; unsigned long env_start; unsigned long env_end; unsigned long saved_auxv[46]; struct mm_rss_stat rss_stat; struct linux_binfmt* binfmt; mm_context_t context; unsigned long flags; spinlock_t ioctx_lock; struct kioctx_table* ioctx_table; struct task_struct* owner; struct user_namespace* user_ns; struct file* exe_file; struct mmu_notifier_subscriptions* notifier_subscriptions; atomic_t tlb_flush_pending; struct uprobes_state uprobes_state; struct work_struct async_put_work; struct { struct list_head list; unsigned long bitmap; struct mem_cgroup* memcg; } lru_gen; }'
      byte size changed from 880 to 912
      member 'struct { struct list_head list; unsigned long bitmap; struct mem_cgroup* memcg; } lru_gen' was added
  member 'unsigned long cpu_bitmap[0]' changed
    offset changed by 256

type 'struct pglist_data' changed
  byte size changed from 5760 to 6976
  member 'unsigned long flags' changed
    offset changed by 8512
  member 'struct lru_gen_mm_walk mm_walk' was added
  3 members ('struct cacheline_padding _pad2_' .. 'atomic_long_t vm_stat[42]') changed
    offset changed by 9728

type 'struct fsverity_info' changed
  byte size changed from 256 to 272
  member 'unsigned long* hash_block_verified' was added
  member 'spinlock_t hash_page_init_lock' was added

type 'struct reclaim_state' changed
  byte size changed from 8 to 16
  member 'struct lru_gen_mm_walk* mm_walk' was added

type 'struct mem_cgroup' changed
  byte size changed from 2112 to 2176
  member 'struct lru_gen_mm_list mm_list' was added
  member 'struct mem_cgroup_per_node* nodeinfo[0]' changed
    offset changed by 192

type 'struct fsverity_operations' changed
  member changed from 'int(* write_merkle_tree_block)(struct inode*, const void*, u64, int)' to 'int(* write_merkle_tree_block)(struct inode*, const void*, u64, unsigned int)'
    type changed from 'int(*)(struct inode*, const void*, u64, int)' to 'int(*)(struct inode*, const void*, u64, unsigned int)'
      pointed-to type changed from 'int(struct inode*, const void*, u64, int)' to 'int(struct inode*, const void*, u64, unsigned int)'
        parameter 4 type changed from 'int' to 'unsigned int'

type 'struct psi_group' changed
  member 'atomic_t poll_scheduled' was added

type 'struct lruvec' changed
  byte size changed from 144 to 1208
  member 'struct lru_gen_struct lrugen' was added
  member 'struct lru_gen_mm_state mm_state' was added
  member 'struct pglist_data* pgdat' changed
    offset changed by 8512

type 'struct merkle_tree_params' changed
  member 'unsigned int blocks_per_page' was added
  member 'u8 log_digestsize' was added
  member changed from 'unsigned int log_blocksize' to 'u8 log_blocksize'
    offset changed from 224 to 264
    type changed from 'unsigned int' to 'u8' = '__u8' = 'unsigned char'
      resolved type changed from 'unsigned int' to 'unsigned char'
  member changed from 'unsigned int log_arity' to 'u8 log_arity'
    offset changed from 256 to 272
    type changed from 'unsigned int' to 'u8' = '__u8' = 'unsigned char'
      resolved type changed from 'unsigned int' to 'unsigned char'
  member 'u8 log_blocks_per_page' was added
  member 'unsigned long tree_pages' was added
  member 'unsigned long level0_blocks' was removed
  member changed from 'u64 level_start[8]' to 'unsigned long level_start[8]'
    type changed from 'u64[8]' to 'unsigned long[8]'
      element type changed from 'u64' = '__u64' = 'unsigned long long' to 'unsigned long'
        resolved type changed from 'unsigned long long' to 'unsigned long'

type 'struct mem_cgroup_per_node' changed
  byte size changed from 1016 to 2080
  9 members ('struct lruvec_stats_percpu* lruvec_stats_percpu' .. 'struct mem_cgroup* memcg') changed
    offset changed by 8512

Bug: 273322767
Change-Id: Ie07b906b23433e2f7690885bf588b1d27a0848f8
Signed-off-by: Todd Kjos <tkjos@google.com>
2023-03-15 18:37:24 +00:00
2023-02-09 13:29:55 +00:00
2023-03-13 15:45:34 +00:00
2023-01-18 18:50:42 +00:00
2023-03-13 15:45:34 +00:00
2023-03-13 15:45:34 +00:00
2023-02-01 09:12:59 +00:00
2023-03-13 15:45:34 +00:00
2023-03-13 15:45:34 +00:00
2023-03-13 15:45:34 +00:00
2023-03-13 15:45:34 +00:00
2022-09-28 09:02:20 +02:00
2022-09-28 09:02:20 +02:00
2023-03-13 18:57:25 +00:00
2022-12-01 13:06:20 +00:00
2022-06-18 10:41:40 -07:00
2022-08-22 16:34:52 +00: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 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)
Description
No description provided
Readme 7.9 GiB
Languages
C 97.7%
Assembly 1.6%
Makefile 0.3%
Perl 0.1%