Add a new symbol to KMI that will be used to simulate the hypervisor
panic. This symbol nvhe_hyp_panic_handler will be used by the
pixel_debug module to collect debug trace information.
Bug: 210011561
Signed-off-by: Sebastian Ene <sebastianene@google.com>
Change-Id: I8cb8035016f7215c71a7ba933010252eb52fed76
Add __trace_bputs() to ABI, so that vendor modules can use
trace_printk() for development debugging.
android12-5.10 already has this, so replicating for android13-5.10.
Bug: 229909445
Signed-off-by: Petri Gynther <pgynther@google.com>
Change-Id: Ida8266c92bd03aade3e93ff75393e07e6100e5ce
Set KMI_GENERATION=4 for 4/15 KMI freeze
Leaf changes summary: 2734 artifacts changed
Changed leaf types summary: 8 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 2677 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 49 Changed, 0 Added variable
2677 functions with some sub-type change:
[C] 'function void* PDE_DATA(const inode*)' at generic.c:799:1 has some sub-type changes:
CRC (modversions) changed from 0x830fd868 to 0xb70c2d59
[C] 'function void __ClearPageMovable(page*)' at compaction.c:138:1 has some sub-type changes:
CRC (modversions) changed from 0x274b4312 to 0x1e91976d
[C] 'function void __SetPageMovable(page*, address_space*)' at compaction.c:130:1 has some sub-type changes:
CRC (modversions) changed from 0xaf251a50 to 0xb1221a47
... 2674 omitted; 2677 symbols have only CRC changes
49 Changed variables:
[C] 'pglist_data contig_page_data' was changed at memblock.c:96:1:
size of symbol changed from 5696 to 6976
CRC (modversions) changed from 0xa8156534 to 0x7007215
type of variable changed:
type size changed from 45568 to 55808 (in bits)
1 data member insertion:
'lru_gen_mm_walk mm_walk', at offset 51520 (in bits) at mmzone.h:1039:1
there are data member changes:
type 'struct lruvec' of 'pglist_data::__lruvec' changed:
type size changed from 1088 to 9664 (in bits)
3 data member insertions:
'lru_gen_struct lrugen', at offset 1024 (in bits) at mmzone.h:497:1
'lru_gen_mm_state mm_state', at offset 8576 (in bits) at mmzone.h:499:1
'u64 android_vendor_data1', at offset 9600 (in bits) at mmzone.h:504:1
there are data member changes:
'pglist_data* pgdat' offset changed (by +8512 bits)
2977 impacted interfaces
'unsigned long int flags' offset changed (by +8576 bits)
3 ('zone_padding _pad2_' .. 'atomic_long_t vm_stat[38]') offsets changed (by +10240 bits)
2977 impacted interfaces
[C] 'task_struct init_task' was changed at init_task.c:64:1:
CRC (modversions) changed from 0x124472e1 to 0xf5fdc492
type of variable changed:
type size hasn't changed
1 data member insertion:
'unsigned int in_lru_fault', at offset 11332 (in bits) at sched.h:840:1
there are data member changes:
4 ('unsigned int no_cgroup_migration' .. 'unsigned int in_memstall') offsets changed (by +1 bits)
2977 impacted interfaces
[C] 'bus_type amba_bustype' was changed at bus.c:215:1:
CRC (modversions) changed from 0x55933f58 to 0xefd95b38
[C] 'const clk_ops clk_fixed_factor_ops' was changed at clk-fixed-factor.c:60:1:
CRC (modversions) changed from 0x38f07e1d to 0xb94d81d6
[C] 'const clk_ops clk_fixed_rate_ops' was changed at clk-fixed-rate.c:46:1:
CRC (modversions) changed from 0x47fbebbe to 0x5299a868
... 44 omitted; 47 symbols have only CRC changes
'struct lruvec at mmzone.h:280:1' changed:
details were reported earlier
'struct mem_cgroup at memcontrol.h:211:1' changed:
type size hasn't changed
1 data member insertion:
'lru_gen_mm_list mm_list', at offset 23168 (in bits) at memcontrol.h:337:1
there are data member changes:
2 ('u64 android_oem_data1' .. 'mem_cgroup_per_node* nodeinfo[]') offsets changed (by +192 bits)
2977 impacted interfaces
'struct mem_cgroup_per_node at memcontrol.h:107:1' changed:
type size changed from 5184 to 13760 (in bits)
there are data member changes:
type 'struct lruvec' of 'mem_cgroup_per_node::lruvec' changed, as reported earlier
10 ('lruvec_stat* lruvec_stat_local' .. 'mem_cgroup* memcg') offsets changed (by +8576 bits)
2977 impacted interfaces
'struct mm_struct at mm_types.h:419:1' changed:
type size changed from 7680 to 7936 (in bits)
there are data member changes:
anonymous data member at offset 0 (in bits) changed from:
struct {vm_area_struct* mmap; rb_root mm_rb; u64 vmacache_seqnum; rwlock_t mm_rb_lock; unsigned long int (file*, unsigned long int, unsigned long int, unsigned long int, unsigned long int)* get_unmapped_area; unsigned long int mmap_base; unsigned long int mmap_legacy_base; unsigned long int task_size; unsigned long int highest_vm_end; pgd_t* pgd; atomic_t membarrier_state; atomic_t mm_users; atomic_t mm_count; atomic_t has_pinned; atomic_long_t pgtables_bytes; int map_count; spinlock_t page_table_lock; rw_semaphore mmap_lock; list_head mmlist; unsigned long int hiwater_rss; unsigned long int hiwater_vm; unsigned long int total_vm; unsigned long int locked_vm; atomic64_t pinned_vm; unsigned long int data_vm; unsigned long int exec_vm; unsigned long int stack_vm; unsigned long int def_flags; seqcount_t write_protect_seq; spinlock_t arg_lock; unsigned long int start_code; unsigned long int end_code; unsigned long int start_data; unsigned long int end_data; unsigned long int start_brk; unsigned long int brk; unsigned long int start_stack; unsigned long int arg_start; unsigned long int arg_end; unsigned long int env_start; unsigned long int env_end; unsigned long int saved_auxv[46]; mm_rss_stat rss_stat; linux_binfmt* binfmt; mm_context_t context; unsigned long int flags; core_state* core_state; spinlock_t ioctx_lock; kioctx_table* ioctx_table; task_struct* owner; user_namespace* user_ns; file* exe_file; mmu_notifier_subscriptions* notifier_subscriptions; percpu_rw_semaphore* mmu_notifier_lock; atomic_t tlb_flush_pending; uprobes_state uprobes_state; work_struct async_put_work; u32 pasid; u64 android_kabi_reserved1;}
to:
struct {vm_area_struct* mmap; rb_root mm_rb; u64 vmacache_seqnum; rwlock_t mm_rb_lock; unsigned long int (file*, unsigned long int, unsigned long int, unsigned long int, unsigned long int)* get_unmapped_area; unsigned long int mmap_base; unsigned long int mmap_legacy_base; unsigned long int task_size; unsigned long int highest_vm_end; pgd_t* pgd; atomic_t membarrier_state; atomic_t mm_users; atomic_t mm_count; atomic_t has_pinned; atomic_long_t pgtables_bytes; int map_count; spinlock_t page_table_lock; rw_semaphore mmap_lock; list_head mmlist; unsigned long int hiwater_rss; unsigned long int hiwater_vm; unsigned long int total_vm; unsigned long int locked_vm; atomic64_t pinned_vm; unsigned long int data_vm; unsigned long int exec_vm; unsigned long int stack_vm; unsigned long int def_flags; seqcount_t write_protect_seq; spinlock_t arg_lock; unsigned long int start_code; unsigned long int end_code; unsigned long int start_data; unsigned long int end_data; unsigned long int start_brk; unsigned long int brk; unsigned long int start_stack; unsigned long int arg_start; unsigned long int arg_end; unsigned long int env_start; unsigned long int env_end; unsigned long int saved_auxv[46]; mm_rss_stat rss_stat; linux_binfmt* binfmt; mm_context_t context; unsigned long int flags; core_state* core_state; spinlock_t ioctx_lock; kioctx_table* ioctx_table; task_struct* owner; user_namespace* user_ns; file* exe_file; mmu_notifier_subscriptions* notifier_subscriptions; percpu_rw_semaphore* mmu_notifier_lock; atomic_t tlb_flush_pending; uprobes_state uprobes_state; work_struct async_put_work; u32 pasid; struct {list_head list; mem_cgroup* memcg; nodemask_t nodes;} lru_gen; u64 android_kabi_reserved1;}
and size changed from 7680 to 7936 (in bits) (by +256 bits)
'unsigned long int cpu_bitmap[]' offset changed (by +256 bits)
2977 impacted interfaces
'struct pglist_data at mmzone.h:729:1' changed:
details were reported earlier
'struct reclaim_state at swap.h:131:1' changed:
type size changed from 64 to 128 (in bits)
1 data member insertion:
'lru_gen_mm_walk* mm_walk', at offset 64 (in bits) at swap.h:135:1
2977 impacted interfaces
'struct scsi_device at scsi_device.h:102:1' changed:
type size hasn't changed
1 data member insertion:
'unsigned int silence_suspend', at offset 2448 (in bits) at scsi_device.h:209:1
there are data member changes:
'bool offline_already' offset changed (by +8 bits)
45 impacted interfaces
'struct task_struct at sched.h:660:1' changed:
details were reported earlier
Bug: 229630433
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: Iacd70a1553401ead91351db0b5b8ec6dfee6e6ec
Add two new symbols to aarch64 kernel ABI:
* pkvm_iommu_sysmmu_sync_register
* pkvm_iommu_finalize
The former allows vendor modules to register a SYSMMU_SYNC device with
the hypervisor, and the latter tells the hypervisor to stop acception
new device registrations.
Bug: 190463801
Signed-off-by: David Brazdil <dbrazdil@google.com>
Change-Id: I6c6948d94cb6494f07d52b4e2b7e91db40e2fcd6
Set KMI_GENERATION=2 for 3/23 KMI update
Leaf changes summary: 505 artifacts changed
Changed leaf types summary: 2 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 489 Changed, 6 Added functions
Removed/Changed/Added variables summary: 0 Removed, 3 Changed, 5 Added variables
6 Added functions:
[A] 'function int __traceiter_android_vh___get_user_pages_remote(void*, int*, unsigned int*)'
[A] 'function int __traceiter_android_vh_get_user_pages(void*, unsigned int*)'
[A] 'function int __traceiter_android_vh_internal_get_user_pages_fast(void*, unsigned int*)'
[A] 'function int __traceiter_android_vh_pin_user_pages(void*, unsigned int*)'
[A] 'function int __traceiter_android_vh_try_grab_compound_head(void*, page*, int, unsigned int, bool*)'
[A] 'function unsigned long int get_pfnblock_flags_mask(page*, unsigned long int, unsigned long int)'
489 functions with some sub-type change:
[C] 'function sk_buff* __alloc_skb(unsigned int, gfp_t, int, int)' at skbuff.c:183:1 has some sub-type changes:
CRC (modversions) changed from 0x42ee9964 to 0x7c77e5af
[C] 'function sk_buff* __cfg80211_alloc_event_skb(wiphy*, wireless_dev*, nl80211_commands, nl80211_attrs, unsigned int, int, int, gfp_t)' at nl80211.c:10277:1 has some sub-type changes:
CRC (modversions) changed from 0x55bb655c to 0x5f07fe5f
[C] 'function sk_buff* __cfg80211_alloc_reply_skb(wiphy*, nl80211_commands, nl80211_attrs, int)' at nl80211.c:13811:1 has some sub-type changes:
CRC (modversions) changed from 0x8854dc9d to 0x4d096973
... 486 omitted; 489 symbols have only CRC changes
5 Added variables:
[A] 'tracepoint __tracepoint_android_vh___get_user_pages_remote'
[A] 'tracepoint __tracepoint_android_vh_get_user_pages'
[A] 'tracepoint __tracepoint_android_vh_internal_get_user_pages_fast'
[A] 'tracepoint __tracepoint_android_vh_pin_user_pages'
[A] 'tracepoint __tracepoint_android_vh_try_grab_compound_head'
3 Changed variables:
[C] 'net init_net' was changed at net_namespace.c:47:1:
CRC (modversions) changed from 0xaff22d13 to 0x59ca894
[C] 'pid_namespace init_pid_ns' was changed at pid.c:75:1:
CRC (modversions) changed from 0x31a2d4d4 to 0x1ee0d04c
[C] 'softnet_data softnet_data' was changed at dev.c:403:1:
CRC (modversions) changed from 0x3f45ee4 to 0xad33d222
'struct net_device at netdevice.h:1898:1' changed:
type size hasn't changed
1 data member insertion:
'const macsec_ops* macsec_ops', at offset 19328 (in bits) at netdevice.h:2202:1
there are data member changes:
11 ('const udp_tunnel_nic_info* udp_tunnel_nic_info' .. 'u64 android_kabi_reserved8') offsets changed (by +64 bits)
2953 impacted interfaces
'struct phy_device at phy.h:541:1' changed:
type size changed from 12736 to 12800 (in bits)
1 data member insertion:
'const macsec_ops* macsec_ops', at offset 12480 (in bits) at phy.h:647:1
there are data member changes:
4 ('u64 android_kabi_reserved1' .. 'u64 android_kabi_reserved4') offsets changed (by +64 bits)
2953 impacted interfaces
Bug: 226384098
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: I128f3003dff88cee9e0dd4041e2f2cc467dac1ee
Add three new symbols to the aarch64 kernel ABI. These are to be
called from vendor modules to register an IOMMU with pKVM and
notify the hypervisor about its PM events.
New symbols:
- pkvm_iommu_s2mpu_register
- pkvm_iommu_suspend
- pkvm_iommu_resume
Bug: 190463801
Signed-off-by: David Brazdil <dbrazdil@google.com>
Change-Id: I9797326a54cba6abd1b233682379de10139c2303
Set KMI_GENERATION=1 for 3/9 KMI update
Leaf changes summary: 36 artifacts changed (1 filtered out)
Changed leaf types summary: 1 (1 filtered out) leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 35 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
35 functions with some sub-type change:
[C] 'function int blk_mq_virtio_map_queues(blk_mq_queue_map*, virtio_device*, int)' at blk-mq-virtio.c:24:1 has some sub-type changes:
CRC (modversions) changed from 0xa6345867 to 0x535973fd
[C] 'function int register_virtio_device(virtio_device*)' at virtio.c:344:1 has some sub-type changes:
CRC (modversions) changed from 0x16faab28 to 0x3477d03c
[C] 'function int register_virtio_driver(virtio_driver*)' at virtio.c:320:1 has some sub-type changes:
CRC (modversions) changed from 0x23e1647b to 0x9964a633
... 32 omitted; 35 symbols have only CRC changes
'struct virtio_config_ops at virtio_config.h:77:1' changed:
type size changed from 896 to 960 (in bits)
1 data member insertion:
'void (virtio_device*)* enable_cbs', at offset 0 (in bits) at virtio_config.h:80:1
there are data member changes:
14 ('void (virtio_device*, unsigned int, void*, unsigned int)* get' .. 'typedef bool (virtio_device*, virtio_shm_region*, typedef u8)* get_shm_region') offsets changed (by +64 bits)
35 impacted interfaces
Bug: 222115076
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: Iadce3c50cbd69e46ad20994235316fecfdc0d00c
Add android/abi_gki_aarch64.xml as initial ABI representation of the KMI
and start enforcing KMI. While this is hard enforcement in the code
base, we still allow controlled changes to the ABI until KMI freeze.
Bug: 220181989
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: Icfdc0a05899667db3a45dca2977edce0cde9b600
Update the generic symbol list to include flush_delayed_work symbol.
Bug: 201222260
Change-Id: If8273372baf9a40dbb242f3552254f8101d07f05
Signed-off-by: Kevin DuBois <kevindubois@google.com>
In order to support, CONFIG_BLK_DEV_NULL_BLK and CONFIG_SCSI_DEBUG for vendors.
Bug: 213617178
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Change-Id: I7ec6d5e6fa1f323a7876c424e1dab2c2814096fa
Reason for revert: need alternative deployment path for test modules
Change-Id: Ie8b22c081d30c4846dfa8534bb8d86a0ef92b936
Bug: 181024194
Signed-off-by: Steve Muckle <smuckle@google.com>
Update the generic symbol list.
Bug: 207573242
Change-Id: Iae4d5874fcf94f8b7f46554ccb60f4a41e383f59
Signed-off-by: Vincent Palomares <paillon@google.com>
Add symbols needed by the newly added open-dice.ko.
This reverts commit 870681ecd3.
Bug: 198197082
Signed-off-by: David Brazdil <dbrazdil@google.com>
Change-Id: I7dadbd95e23f77e8d50ff6c5d9e3e8ff746bef01
Reason for revert: Fails init on devices with no DICE DT nodes
Reverted Changes:
I035ad0998:ANDROID: GKI: update virtual device symbol list
I0b2ec380d:ANDROID: arm64: Enable CONFIG_OPEN_DICE=m
Signed-off-by: David Brazdil <dbrazdil@google.com>
Change-Id: Ieca199d3fa4ad5f574558f55d49a61be2f0a36ff