Commit Graph

88 Commits

Author SHA1 Message Date
Gokul krishna Krishnakumar
79f51cc58a ANDROID: Update QCOM symbol list
Update QCOM symbol list in android/abi_gki_aarch64_qcom.

Leaf changes summary: 145 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 77 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 68 Added variables

77 Added functions:

  [A] 'function rq* __migrate_task(rq*, rq_flags*, task_struct*, int)'
  [A] 'function rq* __task_rq_lock(task_struct*, rq_flags*)'
  [A] 'function void activate_task(rq*, task_struct*, int)'
  [A] 'function int add_memory_subsection(int, u64, u64)'
  [A] 'function void android_debug_for_each_module(int (const char*, void*, void*)*, void*)'
  [A] 'function void* android_debug_per_cpu_symbol(android_debug_per_cpu_symbol)'
  [A] 'function void* android_debug_symbol(android_debug_symbol)'
  [A] 'function task_struct* cgroup_taskset_first(cgroup_taskset*, cgroup_subsys_state**)'
  [A] 'function task_struct* cgroup_taskset_next(cgroup_taskset*, cgroup_subsys_state**)'
  [A] 'function void check_preempt_curr(rq*, task_struct*, int)'
  [A] 'function void console_stop(console*)'
  [A] 'function long int copy_from_kernel_nofault(void*, void*, size_t)'
  [A] 'function int cpufreq_get_policy(cpufreq_policy*, unsigned int)'
  [A] 'function int cpumask_any_and_distribute(const cpumask*, const cpumask*)'
  [A] 'function cgroup_subsys_state* css_next_child(cgroup_subsys_state*, cgroup_subsys_state*)'
  [A] 'function char* d_path(const path*, char*, int)'
  [A] 'function void deactivate_task(rq*, task_struct*, int)'
  [A] 'function devfreq* devfreq_get_devfreq_by_node(device_node*)'
  [A] 'function page* dma_alloc_pages(device*, size_t, dma_addr_t*, dma_data_direction, gfp_t)'
  [A] 'function void dma_free_pages(device*, size_t, page*, dma_addr_t, dma_data_direction)'
  [A] 'function void double_rq_lock(rq*, rq*)'
  [A] 'function pid* find_vpid(int)'
  [A] 'function int get_each_dmabuf(int (const dma_buf*, void*)*, void*)'
  [A] 'function unsigned long int get_each_object_track(kmem_cache*, page*, track_item, int (const kmem_cache*, void*, const track*, void*)*, void*)'
  [A] 'function depot_stack_handle_t get_page_owner_handle(page_ext*, unsigned long int)'
  [A] 'function void get_slabinfo(kmem_cache*, slabinfo*)'
  [A] 'function mm_struct* get_task_mm(task_struct*)'
  [A] 'function const cpumask* housekeeping_cpumask(hk_flags)'
  [A] 'function bool housekeeping_test_cpu(int, hk_flags)'
  [A] 'function i3c_generic_ibi_pool* i3c_generic_ibi_alloc_pool(i3c_dev_desc*, const i3c_ibi_setup*)'
  [A] 'function void i3c_generic_ibi_free_pool(i3c_generic_ibi_pool*)'
  [A] 'function i3c_ibi_slot* i3c_generic_ibi_get_free_slot(i3c_generic_ibi_pool*)'
  [A] 'function void i3c_generic_ibi_recycle_slot(i3c_generic_ibi_pool*, i3c_ibi_slot*)'
  [A] 'function int i3c_master_add_i3c_dev_locked(i3c_master_controller*, u8)'
  [A] 'function int i3c_master_disec_locked(i3c_master_controller*, u8, u8)'
  [A] 'function int i3c_master_do_daa(i3c_master_controller*)'
  [A] 'function int i3c_master_enec_locked(i3c_master_controller*, u8, u8)'
  [A] 'function int i3c_master_entdaa_locked(i3c_master_controller*)'
  [A] 'function int i3c_master_get_free_addr(i3c_master_controller*, u8)'
  [A] 'function void i3c_master_queue_ibi(i3c_dev_desc*, i3c_ibi_slot*)'
  [A] 'function int i3c_master_register(i3c_master_controller*, device*, const i3c_master_controller_ops*, bool)'
  [A] 'function int i3c_master_set_info(i3c_master_controller*, const i3c_device_info*)'
  [A] 'function int i3c_master_unregister(i3c_master_controller*)'
  [A] 'function int input_ff_create(input_dev*, unsigned int)'
  [A] 'function void input_ff_destroy(input_dev*)'
  [A] 'function bool irq_work_queue_on(irq_work*, int)'
  [A] 'function int is_dma_buf_file(file*)'
  [A] 'function int iterate_fd(files_struct*, unsigned int, int (void*, file*, unsigned int)*, void*)'
  [A] 'function kset* kset_create_and_add(const char*, const kset_uevent_ops*, kobject*)'
  [A] 'function page_ext* lookup_page_ext(const page*)'
  [A] 'function int migrate_swap(task_struct*, task_struct*, int, int)'
  [A] 'function void mmput(mm_struct*)'
  [A] 'function pci_dev* pci_dev_get(pci_dev*)'
  [A] 'function phys_addr_t per_cpu_ptr_to_phys(void*)'
  [A] 'function void perf_event_disable(perf_event*)'
  [A] 'function task_struct* pick_highest_pushable_task(rq*, int)'
  [A] 'function task_struct* pick_migrate_task(rq*)'
  [A] 'function int proc_dointvec_minmax(ctl_table*, int, void*, size_t*, loff_t*)'
  [A] 'function bool refcount_dec_and_lock(refcount_t*, spinlock_t*)'
  [A] 'function int register_module_notifier(notifier_block*)'
  [A] 'function int remove_memory_subsection(u64, u64)'
  [A] 'function void resched_curr(rq*)'
  [A] 'function void rproc_put(rproc*)'
  [A] 'function int select_fallback_rq(int, task_struct*)'
  [A] 'function int seq_buf_printf(seq_buf*, const char*, ...)'
  [A] 'function void set_next_entity(cfs_rq*, sched_entity*)'
  [A] 'function void set_task_cpu(task_struct*, unsigned int)'
  [A] 'function void si_swapinfo(sysinfo*)'
  [A] 'function char* skip_spaces(const char*)'
  [A] 'function int smp_call_function_single_async(int, __call_single_data*)'
  [A] 'function int stop_one_cpu(unsigned int, cpu_stop_fn_t, void*)'
  [A] 'function bool stop_one_cpu_nowait(unsigned int, cpu_stop_fn_t, void*, cpu_stop_work*)'
  [A] 'function void topology_clear_scale_freq_source(scale_freq_source, const cpumask*)'
  [A] 'function void trace_seq_printf(trace_seq*, const char*, ...)'
  [A] 'function void trace_seq_putc(trace_seq*, unsigned char)'
  [A] 'function void ufshcd_hba_stop(ufs_hba*)'
  [A] 'function int unregister_die_notifier(notifier_block*)'

68 Added variables:

  [A] 'tracepoint __tracepoint_android_rvh_account_irq'
  [A] 'tracepoint __tracepoint_android_rvh_after_dequeue_task'
  [A] 'tracepoint __tracepoint_android_rvh_after_enqueue_task'
  [A] 'tracepoint __tracepoint_android_rvh_build_perf_domains'
  [A] 'tracepoint __tracepoint_android_rvh_can_migrate_task'
  [A] 'tracepoint __tracepoint_android_rvh_cpu_cgroup_attach'
  [A] 'tracepoint __tracepoint_android_rvh_do_sched_yield'
  [A] 'tracepoint __tracepoint_android_rvh_find_busiest_queue'
  [A] 'tracepoint __tracepoint_android_rvh_find_lowest_rq'
  [A] 'tracepoint __tracepoint_android_rvh_flush_task'
  [A] 'tracepoint __tracepoint_android_rvh_get_nohz_timer_target'
  [A] 'tracepoint __tracepoint_android_rvh_is_cpu_allowed'
  [A] 'tracepoint __tracepoint_android_rvh_migrate_queued_task'
  [A] 'tracepoint __tracepoint_android_rvh_new_task_stats'
  [A] 'tracepoint __tracepoint_android_rvh_replace_next_task_fair'
  [A] 'tracepoint __tracepoint_android_rvh_rto_next_cpu'
  [A] 'tracepoint __tracepoint_android_rvh_sched_cpu_dying'
  [A] 'tracepoint __tracepoint_android_rvh_sched_cpu_starting'
  [A] 'tracepoint __tracepoint_android_rvh_sched_exec'
  [A] 'tracepoint __tracepoint_android_rvh_sched_fork_init'
  [A] 'tracepoint __tracepoint_android_rvh_sched_newidle_balance'
  [A] 'tracepoint __tracepoint_android_rvh_sched_nohz_balancer_kick'
  [A] 'tracepoint __tracepoint_android_rvh_sched_setaffinity'
  [A] 'tracepoint __tracepoint_android_rvh_schedule'
  [A] 'tracepoint __tracepoint_android_rvh_select_task_rq_fair'
  [A] 'tracepoint __tracepoint_android_rvh_set_balance_anon_file_reclaim'
  [A] 'tracepoint __tracepoint_android_rvh_set_cpus_allowed_ptr_locked'
  [A] 'tracepoint __tracepoint_android_rvh_set_gfp_zone_flags'
  [A] 'tracepoint __tracepoint_android_rvh_set_readahead_gfp_mask'
  [A] 'tracepoint __tracepoint_android_rvh_set_skip_swapcache_flags'
  [A] 'tracepoint __tracepoint_android_rvh_set_task_cpu'
  [A] 'tracepoint __tracepoint_android_rvh_show_max_freq'
  [A] 'tracepoint __tracepoint_android_rvh_tick_entry'
  [A] 'tracepoint __tracepoint_android_rvh_try_to_wake_up'
  [A] 'tracepoint __tracepoint_android_rvh_try_to_wake_up_success'
  [A] 'tracepoint __tracepoint_android_rvh_ttwu_cond'
  [A] 'tracepoint __tracepoint_android_rvh_update_cpu_capacity'
  [A] 'tracepoint __tracepoint_android_rvh_update_cpus_allowed'
  [A] 'tracepoint __tracepoint_android_rvh_update_misfit_status'
  [A] 'tracepoint __tracepoint_android_rvh_wake_up_new_task'
  [A] 'tracepoint __tracepoint_android_vh_binder_restore_priority'
  [A] 'tracepoint __tracepoint_android_vh_binder_set_priority'
  [A] 'tracepoint __tracepoint_android_vh_binder_wakeup_ilocked'
  [A] 'tracepoint __tracepoint_android_vh_ftrace_dump_buffer'
  [A] 'tracepoint __tracepoint_android_vh_ftrace_format_check'
  [A] 'tracepoint __tracepoint_android_vh_ftrace_oops_enter'
  [A] 'tracepoint __tracepoint_android_vh_ftrace_oops_exit'
  [A] 'tracepoint __tracepoint_android_vh_ftrace_size_check'
  [A] 'tracepoint __tracepoint_android_vh_logbuf'
  [A] 'tracepoint __tracepoint_android_vh_logbuf_pr_cont'
  [A] 'tracepoint __tracepoint_android_vh_show_resume_epoch_val'
  [A] 'tracepoint __tracepoint_android_vh_show_suspend_epoch_val'
  [A] 'tracepoint __tracepoint_android_vh_update_topology_flags_workfn'
  [A] 'tracepoint __tracepoint_binder_transaction_received'
  [A] 'tracepoint __tracepoint_cpu_frequency_limits'
  [A] 'tracepoint __tracepoint_cpu_idle'
  [A] 'unsigned long int arch_freq_scale'
  [A] 'irqtime cpu_irqtime'
  [A] 'cpu_topology cpu_topology[32]'
  [A] 'cma* dma_contiguous_default_area'
  [A] 'static_key_false housekeeping_overridden'
  [A] 'task_struct* ksoftirqd'
  [A] 'const char* const sched_feat_names[25]'
  [A] 'const int sysctl_vals[3]'
  [A] 'rwlock_t tasklist_lock'
  [A] 'unsigned long int thermal_pressure'
  [A] 'bool topology_update_done'
  [A] 'atomic_long_t vm_zone_stat[11]'

Bug: 211744078
Change-Id: I78b76d846ee1c66f0e86f485022d5656812c5aa9
Signed-off-by: Gokul krishna Krishnakumar <quic_gokukris@quicinc.com>
2022-03-22 15:38:37 +00:00
Greg Kroah-Hartman
1e656f861a ANDROID: GKI: Update the .xml file due to 5.15.28 changes
Linux 5.15.28 extended the size of the cpu_hwcaps structure to handle
the spectre-bhb issue.  Because of this, the ABI "changes" to extend the
structures to grow to handle this.  No driver will be affected by this
at all as there is just a new field at the end of these arrays.

Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 2 Changed, 0 Added variable

2 Changed variables:

  [C] 'static_key_false cpu_hwcap_keys[65]' was changed to 'static_key_false cpu_hwcap_keys[66]' at cpufeature.c:158:1:
    size of symbol changed from 1040 to 1056
    CRC (modversions) changed from 0xc3fa40cc to 0xd14fef22
    type of variable changed:
      type name changed from 'static_key_false[65]' to 'static_key_false[66]'
      array type size changed from 8320 to 8448
      array type subrange 1 changed length from 65 to 66

  [C] 'unsigned long int cpu_hwcaps[2]' was changed at cpufeature.c:106:1:
    CRC (modversions) changed from 0x856092f6 to 0x77c1b75a

Fixes: aa79753319 ("Linux 5.15.28")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Idbe93c443c7c4e72ef1ae6bba9e550355e9e32c5
2022-03-18 07:53:55 +01:00
Greg Kroah-Hartman
c34dfc24e0 ANDROID: Add ieee80211_tx_prepare_skb symbol to android/abi_gki_aarch64_virtual_device
The 5.15.27 kernel release added the requirement to use
ieee80211_tx_prepare_skb() so add it to the virtual device symbol list
to keep the build working properly.

Functions changes summary: 0 Removed, 0 Changed (3013 filtered out), 1 Added functions
Variables changes summary: 0 Removed, 0 Changed (129 filtered out), 0 Added variables

1 Added function:

  [A] 'function bool ieee80211_tx_prepare_skb(ieee80211_hw*, ieee80211_vif*, sk_buff*, int, ieee80211_sta**)'

Fixes: efe3167e52 ("Linux 5.15.27")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Id895880508e7ccd90e1f29048fc11a4ad9c2b84c
2022-03-17 14:02:27 +01:00
Eric Biggers
405073393f ANDROID: ABI: add fips140 symbol list
Add the symbols required by fips140.ko, and update the ABI definition.

Leaf changes summary: 73 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 65 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 8 Added variables

65 Added functions:

  [A] 'function int __traceiter_android_vh_aes_decrypt(void*, const crypto_aes_ctx*, u8*, const u8*, int*)'
  [A] 'function int __traceiter_android_vh_aes_encrypt(void*, const crypto_aes_ctx*, u8*, const u8*, int*)'
  [A] 'function int __traceiter_android_vh_aes_expandkey(void*, crypto_aes_ctx*, const u8*, unsigned int, int*)'
  [A] 'function int __traceiter_android_vh_sha256(void*, const u8*, unsigned int, u8*, int*)'
  [A] 'function int add_random_ready_callback(random_ready_callback*)'
  [A] 'function int aead_register_instance(crypto_template*, aead_instance*)'
  [A] 'function int ahash_register_instance(crypto_template*, ahash_instance*)'
  [A] 'function bool cpu_have_feature(unsigned int)'
  [A] 'function int crypto_ahash_finup(ahash_request*)'
  [A] 'function int crypto_ahash_setkey(crypto_ahash*, const u8*, unsigned int)'
  [A] 'function crypto_rng* crypto_alloc_rng(const char*, u32, u32)'
  [A] 'function crypto_skcipher* crypto_alloc_skcipher(const char*, u32, u32)'
  [A] 'function const char* crypto_attr_alg_name(rtattr*)'
  [A] 'function int crypto_check_attr_type(rtattr**, u32, u32*)'
  [A] 'function void crypto_cipher_encrypt_one(crypto_cipher*, u8*, const u8*)'
  [A] 'function int crypto_cipher_setkey(crypto_cipher*, const u8*, unsigned int)'
  [A] 'function void crypto_drop_spawn(crypto_spawn*)'
  [A] 'function crypto_sync_skcipher* crypto_get_default_null_skcipher()'
  [A] 'function int crypto_grab_aead(crypto_aead_spawn*, crypto_instance*, const char*, u32, u32)'
  [A] 'function int crypto_grab_ahash(crypto_ahash_spawn*, crypto_instance*, const char*, u32, u32)'
  [A] 'function int crypto_grab_shash(crypto_shash_spawn*, crypto_instance*, const char*, u32, u32)'
  [A] 'function int crypto_grab_skcipher(crypto_skcipher_spawn*, crypto_instance*, const char*, u32, u32)'
  [A] 'function int crypto_grab_spawn(crypto_spawn*, crypto_instance*, const char*, u32, u32)'
  [A] 'function int crypto_inst_setname(crypto_instance*, const char*, crypto_alg*)'
  [A] 'function void crypto_put_default_null_skcipher()'
  [A] 'function int crypto_register_aead(aead_alg*)'
  [A] 'function int crypto_register_aeads(aead_alg*, int)'
  [A] 'function int crypto_register_ahash(ahash_alg*)'
  [A] 'function int crypto_register_ahashes(ahash_alg*, int)'
  [A] 'function int crypto_register_algs(crypto_alg*, int)'
  [A] 'function int crypto_register_rng(rng_alg*)'
  [A] 'function int crypto_register_rngs(rng_alg*, int)'
  [A] 'function int crypto_register_shashes(shash_alg*, int)'
  [A] 'function int crypto_register_skcipher(skcipher_alg*)'
  [A] 'function int crypto_register_skciphers(skcipher_alg*, int)'
  [A] 'function int crypto_register_template(crypto_template*)'
  [A] 'function int crypto_register_templates(crypto_template*, int)'
  [A] 'function void crypto_remove_spawns(crypto_alg*, list_head*, crypto_alg*)'
  [A] 'function void crypto_req_done(crypto_async_request*, int)'
  [A] 'function int crypto_rng_reset(crypto_rng*, const u8*, unsigned int)'
  [A] 'function bool crypto_shash_alg_has_setkey(shash_alg*)'
  [A] 'function int crypto_shash_tfm_digest(crypto_shash*, const u8*, unsigned int, u8*)'
  [A] 'function int crypto_skcipher_decrypt(skcipher_request*)'
  [A] 'function crypto_tfm* crypto_spawn_tfm(crypto_spawn*, u32, u32)'
  [A] 'function void* crypto_spawn_tfm2(crypto_spawn*)'
  [A] 'function void crypto_unregister_aead(aead_alg*)'
  [A] 'function void crypto_unregister_rng(rng_alg*)'
  [A] 'function void crypto_unregister_rngs(rng_alg*, int)'
  [A] 'function void crypto_unregister_shashes(shash_alg*, int)'
  [A] 'function void crypto_unregister_skciphers(skcipher_alg*, int)'
  [A] 'function void crypto_unregister_template(crypto_template*)'
  [A] 'function void crypto_unregister_templates(crypto_template*, int)'
  [A] 'function void del_random_ready_callback(random_ready_callback*)'
  [A] 'function void kernel_neon_begin()'
  [A] 'function void kernel_neon_end()'
  [A] 'function scatterlist* scatterwalk_ffwd(scatterlist*, scatterlist*, unsigned int)'
  [A] 'function void scatterwalk_map_and_copy(void*, scatterlist*, unsigned int, unsigned int, int)'
  [A] 'function void shash_free_singlespawn_instance(shash_instance*)'
  [A] 'function int shash_register_instance(crypto_template*, shash_instance*)'
  [A] 'function skcipher_instance* skcipher_alloc_instance_simple(crypto_template*, rtattr**)'
  [A] 'function int skcipher_register_instance(crypto_template*, skcipher_instance*)'
  [A] 'function int skcipher_walk_aead_decrypt(skcipher_walk*, aead_request*, bool)'
  [A] 'function int skcipher_walk_aead_encrypt(skcipher_walk*, aead_request*, bool)'
  [A] 'function int skcipher_walk_done(skcipher_walk*, int)'
  [A] 'function int skcipher_walk_virt(skcipher_walk*, skcipher_request*, bool)'

8 Added variables:

  [A] 'tracepoint __tracepoint_android_vh_aes_decrypt'
  [A] 'tracepoint __tracepoint_android_vh_aes_encrypt'
  [A] 'tracepoint __tracepoint_android_vh_aes_expandkey'
  [A] 'tracepoint __tracepoint_android_vh_sha256'
  [A] 'list_head crypto_alg_list'
  [A] 'rw_semaphore crypto_alg_sem'
  [A] 'bool fpsimd_context_busy'
  [A] 'irq_cpustat_t irq_stat'

Bug: 153614920
Bug: 188620248
Change-Id: I7aa261aab7c275eed9db1d011e894d87db3afd9f
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-03-15 21:24:22 +00:00
Ard Biesheuvel
2db9143a1b ANDROID: fips140: add kernel crypto module
To meet FIPS 140 requirements, add support for building a kernel module
"fips140.ko" that contains various cryptographic algorithms built from
existing kernel source files.  At load time, the module checks its own
integrity and self-tests its algorithms, then registers the algorithms
with the crypto API to supersede the original algorithms provided by the
kernel itself.

[ebiggers: this commit originated from "ANDROID: crypto: fips140 -
 perform load time integrity check", but I've folded many later commits
 into it to make forward porting easier.  See below]

Original commits from android12-5.10:
  * 6be141eb36 ("ANDROID: crypto: fips140 - perform load time integrity check")
  * 868be244bb ("ANDROID: inject correct HMAC digest into fips140.ko at build time")
  * 091338cb39 ("ANDROID: fips140: add missing static keyword to fips140_init()")
  * c799c6644b ("ANDROID: fips140: adjust some log messages")
  * 92de53472e ("ANDROID: fips140: log already-live algorithms")
  * 0af06624ea ("ANDROID: fips140: check for errors from initcalls")
  * 634445a640 ("ANDROID: fips140: fix deadlock in unregister_existing_fips140_algos()")
  * e886dd4c33 ("ANDROID: fips140: unregister existing DRBG algorithms")
  * b7397e89db ("ANDROID: fips140: add power-up cryptographic self-tests")
  * 50661975be ("ANDROID: fips140: add/update module help text")
  * b397a0387c ("ANDROID: fips140: test all implementations")
  * 17ccefe140 ("ANDROID: fips140: use full 16-byte IV")
  * 1be58af077 ("ANDROID: fips140: remove non-prediction-resistant DRBG test")
  * 2b5843ae2d ("ANDROID: fips140: add AES-CBC-CTS")
  * 2ee56aad31 ("ANDROID: fips140: add AES-CMAC")
  * 960ebb2b56 ("ANDROID: fips140: add jitterentropy to fips140 module")
  * e5b14396f9 ("ANDROID: fips140: take into account AES-GCM not being approvable")
  * 52b70d491b ("ANDROID: fips140: use FIPS140_CFLAGS when compiling fips140-selftests.c")
  * 6b995f5a54 ("ANDROID: fips140: preserve RELA sections without relying on the module loader")
  * e45108ecff ("ANDROID: fips140: block crypto operations until tests complete")
  * ecf9341134 ("ANDROID: fips140: remove in-place updating of live algorithms")
  * 482b0323cf ("ANDROID: fips140: zeroize temporary values from integrity check")
  * 64d769e53f ("ANDROID: fips140: add service indicators")
  * 8d7f609cda ("ANDROID: fips140: add name and version, and a function to retrieve them")
  * 6b7c37f6c4 ("ANDROID: fips140: use UTS_RELEASE as FIPS version")
  * 903e97a0ca ("ANDROID: fips140: refactor evaluation testing support")
  * 97fb2104fe ("ANDROID: fips140: add support for injecting integrity error")
  * 109f31ac23 ("ANDROID: fips140: add userspace interface for evaluation testing")

Bug: 153614920
Bug: 188620248
Test: tested that the module builds and can be loaded on raven.
Change-Id: I3fde49dbc3d16b149b072a27ba5b4c6219015c94
Signed-off-by: Ard Biesheuvel <ardb@google.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-03-15 21:24:22 +00:00
David Brazdil
ec0a6ef36e ANDROID: update ABI representation
Leaf changes summary: 3 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 3 Added
functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added
variable

3 Added functions:

  [A] 'function int pkvm_iommu_resume(device*)'
  [A] 'function int pkvm_iommu_s2mpu_register(device*, phys_addr_t)'
  [A] 'function int pkvm_iommu_suspend(device*)'

Bug: 190463801
Signed-off-by: David Brazdil <dbrazdil@google.com>
Change-Id: I7587f464315d0adddc75f1b18d1a7b93b7743c8d
2022-03-15 12:46:53 +00:00
David Brazdil
3e3bc301e6 ANDROID: Add pkvm_iommu_* symbols to aarch64 ABI
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
2022-03-15 11:52:44 +00:00
Todd Kjos
fc6ab4da31 ANDROID: GKI: 3/9/2022 KMI update
Set KMI_GENERATION=1 for 3/9 KMI update

Leaf changes summary: 2579 artifacts changed (1 filtered out)
Changed leaf types summary: 9 (1 filtered out) leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 2521 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 49 Changed, 0 Added variable

2521 functions with some sub-type change:

  [C] 'function void* PDE_DATA(const inode*)' at generic.c:794:1 has some sub-type changes:
    CRC (modversions) changed from 0x17465176 to 0x1c3e2a86

  [C] 'function void __ClearPageMovable(page*)' at compaction.c:138:1 has some sub-type changes:
    CRC (modversions) changed from 0x8331b3e3 to 0x734edab3

  [C] 'function void __SetPageMovable(page*, address_space*)' at compaction.c:130:1 has some sub-type changes:
    CRC (modversions) changed from 0xe56f361 to 0x891f9c1d

  ... 2518 omitted; 2521 symbols have only CRC changes

49 Changed variables:

  [C] 'bus_type amba_bustype' was changed at bus.c:313:1:
    CRC (modversions) changed from 0xe555ebeb to 0x517f2d17

  [C] 'const address_space_operations balloon_aops' was changed at balloon_compaction.c:253:1:
    CRC (modversions) changed from 0xa9866f1a to 0x89a77b8c

  [C] 'const clk_ops clk_divider_ops' was changed at clk-divider.c:522:1:
    CRC (modversions) changed from 0xca4154fa to 0x5a75cc1

  ... 46 omitted; 49 symbols have only CRC changes

'enum nl80211_attrs at nl80211.h:2666:1' changed:
  type size hasn't changed
  1 enumerator insertion:
    'nl80211_attrs::NL80211_ATTR_EHT_CAPABILITY' value '310'
  3 enumerator changes:
    'nl80211_attrs::NL80211_ATTR_MAX' from value '309' to '310' at nl80211.h:2670:1
    'nl80211_attrs::NUM_NL80211_ATTR' from value '310' to '311' at nl80211.h:2670:1
    'nl80211_attrs::__NL80211_ATTR_AFTER_LAST' from value '310' to '311' at nl80211.h:2670:1
  2 impacted interfaces
'struct ieee80211_sband_iftype_data at cfg80211.h:378:1' changed:
  type size changed from 640 to 1024 (in bits)
  1 data member insertion:
    'ieee80211_sta_eht_cap eht_cap', at offset 472 (in bits) at cfg80211.h:431:1
  there are data member changes:
    'struct {const u8* data; unsigned int len;} vendor_elems' offset changed (by +384 bits)
  3084 impacted interfaces

'struct iommu_dma_cookie at dma-iommu.c:41:1' changed (indirectly):
  type size changed from 15360 to 15424 (in bits)
  there are data member changes:
    type 'union {iova_domain iovad; dma_addr_t msi_iova;}' of 'anonymous data member' changed:
      type size changed from 15104 to 15168 (in bits)
      there are data member changes:
        type 'struct iova_domain' of '__anonymous_union__::iovad' changed:
          type size changed from 15104 to 15168 (in bits)
          1 data member insertion:
            'bool best_fit', at offset 15104 (in bits) at iova.h:99:1
          3086 impacted interfaces
    2 ('list_head msi_page_list' .. 'iommu_domain* fq_domain') offsets changed (by +64 bits)
  3084 impacted interfaces

'struct iova_domain at iova.h:68:1' changed:
  details were reported earlier

'struct module at module.h:364:1' changed:
  type size hasn't changed
  2 data member insertions:
    'unsigned int btf_data_size', at offset 6016 (in bits) at module.h:477:1
    'void* btf_data', at offset 6080 (in bits) at module.h:478:1
  there are data member changes:
    18 ('jump_entry* jump_entries' .. 'unsigned int num_ei_funcs') offsets changed (by +128 bits)
  3084 impacted interfaces

'struct rate_info at cfg80211.h:1580:1' changed:
  type size changed from 80 to 96 (in bits)
  2 data member insertions:
    'u8 eht_gi', at offset 80 (in bits) at cfg80211.h:1673:1
    'u8 eht_ru_alloc', at offset 88 (in bits) at cfg80211.h:1674:1
  5 impacted interfaces

'struct station_info at cfg80211.h:1743:1' changed (indirectly):
  type size changed from 1792 to 1856 (in bits)
  there are data member changes:
    type 'struct rate_info' of 'station_info::txrate' changed, as reported earlier
    type 'struct rate_info' of 'station_info::rxrate' changed, as reported earlier
    and offset changed from 528 to 544 (in bits) (by +16 bits)
    8 ('u32 rx_packets' .. 'int generation') offsets changed (by +32 bits)
    21 ('const u8* assoc_req_ies' .. 'u8 connected_to_as') offsets changed (by +64 bits)
  4 impacted interfaces

'struct station_parameters at cfg80211.h:1421:1' changed:
  type size changed from 1280 to 1408 (in bits)
  2 data member insertions:
    'const ieee80211_eht_cap_elem* eht_capa', at offset 1280 (in bits) at cfg80211.h:1525:1
    'u8 eht_capa_len', at offset 1344 (in bits) at cfg80211.h:1526:1
  one impacted interface

'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: I1aac74111756444ff6bff92b843a5133f3c7541c
2022-03-09 09:05:45 -08:00
Jeevan Shriram
f3eb1ea20f ANDROID: Update QCOM symbol list
Update QCOM symbol list in android/abi_gki_aarch64_qcom with following
symbols.

powercap_register_control_type
powercap_register_zone
powercap_unregister_control_type
powercap_unregister_zone

Bug: 220884335
Change-Id: I986905c8d6263589294e4eb12796c219305c7641
Signed-off-by: Jeevan Shriram <quic_jshriram@quicinc.com>
Signed-off-by: Manaf Meethalavalappu Pallikunhi <quic_manafm@quicinc.com>
2022-03-01 08:22:07 -08:00
Lecopzer Chen
5a379c470b ANDROID: Update mtktv symbol list
Update mtktv symbol list from Feb. main trunk

Leaf changes summary: 43 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 43 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

43 Added functions:

  [A] 'function void __cfg80211_radar_event(wiphy*, cfg80211_chan_def*, bool, gfp_t)'
  [A] 'function int __hwspin_trylock(hwspinlock*, int, unsigned long int*)'
  [A] 'function int __kfifo_to_user(__kfifo*, void*, unsigned long int, unsigned int*)'
  [A] 'function void __napi_schedule_irqoff(napi_struct*)'
  [A] 'function int alg_test(const char*, const char*, u32, u32)'
  [A] 'function void cfg80211_assoc_timeout(net_device*, cfg80211_bss*)'
  [A] 'function void cfg80211_cac_event(net_device*, const cfg80211_chan_def*, nl80211_radar_event, gfp_t)'
  [A] 'function unsigned int cfg80211_classify8021d(sk_buff*, cfg80211_qos_map*)'
  [A] 'function void cfg80211_cqm_rssi_notify(net_device*, nl80211_cqm_rssi_threshold_event, s32, gfp_t)'
  [A] 'function void cfg80211_cqm_txe_notify(net_device*, const u8*, u32, u32, u32, gfp_t)'
  [A] 'function void cfg80211_ft_event(net_device*, cfg80211_ft_event_params*)'
  [A] 'function void cfg80211_pmksa_candidate_notify(net_device*, int, const u8*, bool, gfp_t)'
  [A] 'function void cfg80211_rx_assoc_resp(net_device*, cfg80211_bss*, const u8*, size_t, int, const u8*, size_t)'
  [A] 'function void cfg80211_rx_mlme_mgmt(net_device*, const u8*, size_t)'
  [A] 'function void cfg80211_tdls_oper_request(net_device*, const u8*, nl80211_tdls_operation, u16, gfp_t)'
  [A] 'function void cfg80211_tx_mlme_mgmt(net_device*, const u8*, size_t, bool)'
  [A] 'function unsigned int cpufreq_quick_get_max(unsigned int)'
  [A] 'function bool dev_valid_name(const char*)'
  [A] 'function int dma_heap_bufferfd_alloc(dma_heap*, size_t, unsigned int, unsigned int)'
  [A] 'function gpio_chip* gpiochip_find(void*, int (gpio_chip*, void*)*)'
  [A] 'function int hwspin_lock_get_id(hwspinlock*)'
  [A] 'function hwspinlock* hwspin_lock_request()'
  [A] 'function bool ieee80211_operating_class_to_band(u8, nl80211_band*)'
  [A] 'function iio_dev* iio_device_alloc(device*, int)'
  [A] 'function void iio_device_free(iio_dev*)'
  [A] 'function void napi_gro_flush(napi_struct*, bool)'
  [A] 'function void proc_set_user(proc_dir_entry*, kuid_t, kgid_t)'
  [A] 'function int rtc_set_alarm(rtc_device*, rtc_wkalrm*)'
  [A] 'function int sg_nents(scatterlist*)'
  [A] 'function void* skb_pull_rcsum(sk_buff*, unsigned int)'
  [A] 'function thermal_zone_device* thermal_zone_get_zone_by_name(const char*)'
  [A] 'function int usb_anchor_empty(usb_anchor*)'
  [A] 'function int usb_interrupt_msg(usb_device*, unsigned int, void*, int, int*, int)'
  [A] 'function void usb_kill_urb(urb*)'
  [A] 'function void usb_reset_endpoint(usb_device*, unsigned int)'
  [A] 'function int usb_string(usb_device*, int, char*, size_t)'
  [A] 'function int vsprintf(char*, const char*, va_list)'
  [A] 'function void wireless_send_event(net_device*, unsigned int, iwreq_data*, const char*)'
  [A] 'function int zlib_deflate(z_streamp, int)'
  [A] 'function int zlib_deflateInit2(z_streamp, int, int, int, int, int)'
  [A] 'function int zlib_deflateReset(z_streamp)'
  [A] 'function int zlib_deflate_workspacesize(int, int)'
  [A] 'function int zlib_inflate_workspacesize()'

Bug: 220996488
Signed-off-by: Lecopzer Chen <lecopzer.chen@mediatek.com>
Change-Id: I700546ab080b9ee907c358b3feb7a56c76520e54
Signed-off-by: Giuliano Procida <gprocida@google.com>
2022-02-25 16:20:48 +00:00
Giuliano Procida
3edc23316a ANDROID: GKI: refresh XML following KMI enforcement race
Leaf changes summary: 1 artifact changed (1 filtered out)
Changed leaf types summary: 0 (1 filtered out) leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 1 Added variable

1 Added variable:

  [A] 'const vb2_mem_ops vb2_dma_sg_memops'

Fixes: 3162b2f66c ("ANDROID: GKI: update the pixel symbol list")
Change-Id: I43e12521554bf5c9765b49d22867476ddb167d05
Signed-off-by: Giuliano Procida <gprocida@google.com>
2022-02-25 14:59:57 +00:00
Will McVicker
3162b2f66c ANDROID: GKI: update the pixel symbol list
Adds vb2_dma_sg_memops to the symbol list now that VIDEOBUF2_DMA_SG is
built-in to the GKI kernel.

Bug: 219998156
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I59af06d1da835e21751636dd758ac25d9d00c8b1
2022-02-24 18:48:42 +00:00
Matthias Maennich
0152a475c4 ANDROID: add initial KMI representation and enable KMI enforcement
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
2022-02-24 10:12:30 +00:00
Will McVicker
fd578e1686 ANDROID: GKI: update the pixel symbol list
These new symbols add support for the scheduler vendor hooks on P21
mainline.

Bug: 218524554
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I9c93946459858ef5a4cbf49b84acb73091f5439c
2022-02-08 12:19:18 -08:00
Neeraj Upadhyay
5cf67f02b3 ANDROID: Update QCOM symbol list
Update QCOM symbol list to include vhost symbols.

Bug: 217278607
Change-Id: I4ae6aa941f3a2adc0f7594fbffb3da464a5b4602
Signed-off-by: Neeraj Upadhyay <quic_neeraju@quicinc.com>
2022-02-01 21:05:08 +00:00
Steve Muckle
388a1734b3 Revert "ANDROID: GKI: enable test_stackinit kernel module"
Reason for revert: need alternative deployment path for test modules

Change-Id: I2b27bb5451a3338e5d5cdb1e67440290cd42df44
Bug: 181024194
Signed-off-by: Steve Muckle <smuckle@google.com>
2022-02-01 20:33:18 +00:00
Georgi Djakov
2ab4227174 ANDROID: qcom: iommu: Use restricted vendor hook for dma ops
Use rvh instead of vh for the iommu_setup_dma_ops to prevent
sleeping while atomic bugs as mutexes are used to serialize
access to iova regions.

Bug: 216657571
Change-Id: If90d0714576ed6ca4b014b1447a1518f05a7ed0b
Signed-off-by: Georgi Djakov <quic_c_gdjako@quicinc.com>
2022-02-01 17:44:12 +00:00
Pavankumar Kondeti
242d64a6bd ANDROID: Update QCOM symbol list
Update QCOM symbol list in android/abi_gki_aarch64_qcom.

Bug: 217106866
Change-Id: I6359eef212a1212c2a01e81de289c86b2d188850
Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
2022-02-01 08:25:30 +00:00
Pavankumar Kondeti
be1b98b011 ANDROID: Sort QCOM symbol list
Sort the symbols in QCOM symbol list with the below command.

LANG=C sort -o android/abi_gki_aarch64_qcom android/abi_gki_aarch64_qcom

Bug: 217106866
Change-Id: I4f13563e2dd5becdc2cfaf69b8816ac7b689b67c
Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
2022-02-01 08:25:20 +00:00
Gokul krishna Krishnakumar
9703a8cd4b ANDROID: Update QCOM symbol list
Update QCOM symbol list in android/abi_gki_aarch64_qcom.

Bug: 211744078
Change-Id: I7a22e4948c2fd5071cd53c2dc754b2ebfd0e93d0
Signed-off-by: Gokul krishna Krishnakumar <quic_gokukris@quicinc.com>
2022-01-27 16:59:48 +00:00
Will McVicker
5d83118dbf ANDROID: GKI: update the pixel symbol list
The list is updated based on the branch "aosp/android13-gs-raviole-5.15".
The only new symbols (not in any symbol list) are:

 * __rt_mutex_init
 * __wake_up_sync
 * bpf_trace_run11

Bug: 215745244
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I42f939b467fc3e544ed5c9cb4c3568b1b3d3c8a8
2022-01-24 17:03:15 +00:00
Alistair Delva
f5ea50a85b ANDROID: GKI: update virtual_device symbol list
DRM core symbols needed by pl111 driver.

Bug: 203030890
Change-Id: I2d33e9426e607d85b54de794cdd3f0a097a3421f
Signed-off-by: Alistair Delva <adelva@google.com>
2022-01-21 15:48:38 +00:00
David Brazdil
31641032ce ANDROID: GKI: update virtual device symbol list
Add symbols needed by the newly added open-dice.ko.

Bug: 198197082
Signed-off-by: David Brazdil <dbrazdil@google.com>
Change-Id: I035ad09985d216151fb84df104bc90b8db32bbcf
2022-01-20 17:19:00 +00:00
Steve Muckle
184e458499 ANDROID: GKI: enable test_stackinit kernel module
Bug: 181024194
Change-Id: Ib7f9ea287fea7d27a87cdf549d0c4914317f8e56
Signed-off-by: Steve Muckle <smuckle@google.com>
2022-01-19 22:03:10 +00:00
Ramji Jiyani
fbdf37f093 ANDROID: GKI: Enable system_dlkm build for gki
Update GKI build configs to build system_dlkm.img.

Add an empty system_dlkm modules list file at:
android/gki_system_dlkm_modules

Bug: 200082547
Bug: 214445388
Test: TH
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Change-Id: Ia11b48d6033a39479d71c90159c74809a874893d
2022-01-14 20:01:23 +00:00
Gokul krishna Krishnakumar
88b7cf0b5b ANDROID: Add initial QCOM symbol list
Add initial sybol list for QCOM in android/abi_gki_aarch64_qcom.

Bug: 211744078
Change-Id: I0b7c8cf52c8c0fa944ad431865379d101b30a66e
Signed-off-by: Gokul krishna Krishnakumar <quic_gokukris@quicinc.com>
2022-01-10 17:10:14 +00:00
Hridya Valsaraju
8b7fdc4ca7 ANDROID: GKI: Update virtual_device symbol list
Update symbol list after making the DMA-BUF heap page-pool helper
library built-in.

Bug: 183902174
Change-Id: I855e034942e2cbaf935e855d0db8882ccefb0395
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2022-01-06 10:12:49 -08:00
Lecopzer Chen
9ec6b2ff43 ANDROID: add initial symbol list for mtktv
1. ABI diff by
BUILD_CONFIG=common/build.config.gki.aarch64 build/build_abi.sh -j64

2. symbol added:
Leaf changes summary: 370 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 353 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 17 Added variables
Function symbols changes summary: 0 Removed, 2 Added function symbols not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info

353 Added functions:

  [A] 'function buffer_head* __bread_gfp(block_device*, sector_t, unsigned int, gfp_t)'
  [A] 'function void __brelse(buffer_head*)'
  [A] 'function int __cpufreq_driver_target(cpufreq_policy*, unsigned int, unsigned int)'
  [A] 'function buffer_head* __getblk_gfp(block_device*, sector_t, unsigned int, gfp_t)'
  [A] 'function int __iio_device_register(iio_dev*, module*)'
  [A] 'function void __insert_inode_hash(inode*, unsigned long int)'
  [A] 'function unsigned int __kfifo_in_r(__kfifo*, void*, unsigned int, size_t)'
  [A] 'function unsigned int __kfifo_out_r(__kfifo*, void*, unsigned int, size_t)'
  [A] 'function void __lock_buffer(buffer_head*)'
  [A] 'function int __media_device_register(media_device*, module*)'
  [A] 'function int __mmc_claim_host(mmc_host*, mmc_ctx*, atomic_t*)'
  [A] 'function void __module_put_and_exit(module*, long int)'
  [A] 'function int __platform_register_drivers(platform_driver* const*, unsigned int, module*)'
  [A] 'function regmap* __regmap_init_i2c(i2c_client*, const regmap_config*, lock_class_key*, const char*)'
  [A] 'function void* __symbol_get(const char*)'
  [A] 'function void __symbol_put(const char*)'
  [A] 'function int __trace_bprintk(unsigned long int, const char*, ...)'
  [A] 'function int __trace_bputs(unsigned long int, const char*)'
  [A] 'function int __trace_puts(unsigned long int, const char*, int)'
  [A] 'function void __wait_on_buffer(buffer_head*)'
  [A] 'function unsigned long int _snd_pcm_stream_lock_irqsave(snd_pcm_substream*)'
  [A] 'function int alloc_contig_range(unsigned long int, unsigned long int, unsigned int, gfp_t)'
  [A] 'function file* anon_inode_getfile(const char*, const file_operations*, void*, int)'
  [A] 'function backlight_device* backlight_device_register(const char*, device*, void*, const backlight_ops*, const backlight_properties*)'
  [A] 'function void backlight_device_unregister(backlight_device*)'
  [A] 'function void baswap(bdaddr_t*, const bdaddr_t*)'
  [A] 'function int bitmap_find_free_region(unsigned long int*, unsigned int, int)'
  [A] 'function void bitmap_release_region(unsigned long int*, unsigned int, int)'
  [A] 'function int block_is_partially_uptodate(page*, unsigned long int, unsigned long int)'
  [A] 'function void bt_procfs_cleanup(net*, const char*)'
  [A] 'function int bt_procfs_init(net*, const char*, bt_sock_list*, int (seq_file*, void*)*)'
  [A] 'function void bt_sock_link(bt_sock_list*, sock*)'
  [A] 'function int bt_sock_register(int, const net_proto_family*)'
  [A] 'function void bt_sock_unlink(bt_sock_list*, sock*)'
  [A] 'function void bt_sock_unregister(int)'
  [A] 'function int buffer_migrate_page(address_space*, page*, page*, migrate_mode)'
  [A] 'function void cec_transmit_done_ts(cec_adapter*, u8, u8, u8, u8, u8, ktime_t)'
  [A] 'function device* class_find_device(class*, device*, void*, int (device*, void*)*)'
  [A] 'function void clear_inode(inode*)'
  [A] 'function void clk_bulk_put_all(int, clk_bulk_data*)'
  [A] 'function int clk_hw_set_parent(clk_hw*, clk_hw*)'
  [A] 'function clk* clk_register_composite(device*, const char*, const char* const*, int, clk_hw*, const clk_ops*, clk_hw*, const clk_ops*, clk_hw*, const clk_ops*, unsigned long int)'
  [A] 'function clk* clk_register_divider_table(device*, const char*, const char*, unsigned long int, void*, u8, u8, u8, const clk_div_table*, spinlock_t*)'
  [A] 'function void cpufreq_dbs_governor_exit(cpufreq_policy*)'
  [A] 'function int cpufreq_dbs_governor_init(cpufreq_policy*)'
  [A] 'function void cpufreq_dbs_governor_limits(cpufreq_policy*)'
  [A] 'function int cpufreq_dbs_governor_start(cpufreq_policy*)'
  [A] 'function void cpufreq_dbs_governor_stop(cpufreq_policy*)'
  [A] 'function int cpufreq_register_governor(cpufreq_governor*)'
  [A] 'function int cpufreq_table_index_unsorted(cpufreq_policy*, unsigned int, unsigned int)'
  [A] 'function void cpufreq_unregister_governor(cpufreq_governor*)'
  [A] 'function void cpufreq_update_policy(unsigned int)'
  [A] 'function u32 crc32_be(u32, const unsigned char*, size_t)'
  [A] 'function void create_empty_buffers(page*, unsigned long int, unsigned long int)'
  [A] 'function int crypto_register_alg(crypto_alg*)'
  [A] 'function void crypto_unregister_alg(crypto_alg*)'
  [A] 'function void crypto_unregister_scomp(scomp_alg*)'
  [A] 'function void d_add(dentry*, inode*)'
  [A] 'function dentry* d_add_ci(dentry*, inode*, qstr*)'
  [A] 'function dentry* d_make_root(inode*)'
  [A] 'function dentry* d_obtain_alias(inode*)'
  [A] 'function dentry* d_splice_alias(inode*, dentry*)'
  [A] 'function unsigned int dbs_update(cpufreq_policy*)'
  [A] 'function void debugfs_create_devm_seqfile(device*, const char*, dentry*, int (seq_file*, void*)*)'
  [A] 'function void debugfs_create_regset32(const char*, umode_t, dentry*, debugfs_regset32*)'
  [A] 'function dentry* debugfs_create_symlink(const char*, dentry*, const char*)'
  [A] 'function opp_table* dev_pm_opp_get_opp_table(device*)'
  [A] 'function int dev_pm_opp_init_cpufreq_table(device*, cpufreq_frequency_table**)'
  [A] 'function int dev_pm_opp_of_add_table_indexed(device*, int)'
  [A] 'function int dev_pm_opp_of_cpumask_add_table(const cpumask*)'
  [A] 'function int dev_pm_opp_of_get_sharing_cpus(device*, cpumask*)'
  [A] 'function void dev_pm_opp_put_opp_table(opp_table*)'
  [A] 'function devfreq* devfreq_get_devfreq_by_phandle(device*, const char*, int)'
  [A] 'function int devfreq_remove_governor(devfreq_governor*)'
  [A] 'function unsigned int device_get_child_node_count(device*)'
  [A] 'function fwnode_handle* device_get_next_child_node(device*, fwnode_handle*)'
  [A] 'function int device_match_of_node(device*, void*)'
  [A] 'function regmap* device_node_to_regmap(device_node*)'
  [A] 'function int devm_devfreq_register_notifier(device*, devfreq*, notifier_block*, unsigned int)'
  [A] 'function void devm_devfreq_remove_device(device*, devfreq*)'
  [A] 'function void devm_devfreq_unregister_notifier(device*, devfreq*, notifier_block*, unsigned int)'
  [A] 'function int devm_extcon_register_notifier(device*, extcon_dev*, unsigned int, notifier_block*)'
  [A] 'function gpio_desc* devm_fwnode_gpiod_get_index(device*, fwnode_handle*, const char*, int, gpiod_flags, const char*)'
  [A] 'function gpio_desc* devm_gpiod_get_index_optional(device*, const char*, unsigned int, gpiod_flags)'
  [A] 'function int devm_hwrng_register(device*, hwrng*)'
  [A] 'function int devm_hwspin_lock_unregister(device*, hwspinlock_device*)'
  [A] 'function int devm_led_classdev_register_ext(device*, led_classdev*, led_init_data*)'
  [A] 'function nvmem_device* devm_nvmem_device_get(device*, const char*)'
  [A] 'function phy* devm_of_phy_get_by_index(device*, device_node*, int)'
  [A] 'function pci_host_bridge* devm_pci_alloc_host_bridge(device*, size_t)'
  [A] 'function pwm_device* devm_pwm_get(device*, const char*)'
  [A] 'function int devm_request_pci_bus_resources(device*, list_head*)'
  [A] 'function dma_fence_array* dma_fence_array_create(int, dma_fence**, u64, unsigned int, bool)'
  [A] 'function int dma_supported(device*, u64)'
  [A] 'function void do_exit(long int)'
  [A] 'function int down_timeout(semaphore*, long int)'
  [A] 'function device_driver* driver_find(const char*, bus_type*)'
  [A] 'function void drm_atomic_helper_async_commit(drm_device*, drm_atomic_state*)'
  [A] 'function void drm_atomic_state_default_clear(drm_atomic_state*)'
  [A] 'function void drm_display_mode_from_videomode(const videomode*, drm_display_mode*)'
  [A] 'function int drm_gem_mmap_obj(drm_gem_object*, unsigned long int, vm_area_struct*)'
  [A] 'function drm_display_mode* drm_mode_create(drm_device*)'
  [A] 'function int drm_mode_crtc_set_gamma_size(drm_crtc*, int)'
  [A] 'function drm_property* drm_property_create_signed_range(drm_device*, u32, const char*, int64_t, int64_t)'
  [A] 'function void drm_self_refresh_helper_update_avg_times(drm_atomic_state*, unsigned int, unsigned int)'
  [A] 'function void end_buffer_read_sync(buffer_head*, int)'
  [A] 'function int eth_header(sk_buff*, net_device*, unsigned short int, void*, void*, unsigned int)'
  [A] 'function int eth_header_parse(const sk_buff*, unsigned char*)'
  [A] 'function int follow_pfn(vm_area_struct*, unsigned long int, unsigned long int*)'
  [A] 'function unsigned long int gen_pool_best_fit(unsigned long int*, unsigned long int, unsigned long int, unsigned int, void*, gen_pool*, unsigned long int)'
  [A] 'function void* gen_pool_dma_alloc(gen_pool*, size_t, dma_addr_t*)'
  [A] 'function gen_pool* gen_pool_get(device*, const char*)'
  [A] 'function void gen_pool_set_algo(gen_pool*, genpool_algo_t, void*)'
  [A] 'function phys_addr_t gen_pool_virt_to_phys(gen_pool*, unsigned long int)'
  [A] 'function int generic_error_remove_page(address_space*, page*)'
  [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 int generic_file_mmap(file*, vm_area_struct*)'
  [A] 'function int generic_file_open(inode*, file*)'
  [A] 'function ssize_t generic_file_read_iter(kiocb*, iov_iter*)'
  [A] 'function ssize_t generic_file_splice_read(file*, loff_t*, pipe_inode_info*, size_t, unsigned int)'
  [A] 'function ssize_t generic_read_dir(file*, char*, size_t, loff_t*)'
  [A] 'function int get_kernel_pages(const kvec*, int, int, page**)'
  [A] 'function long int get_user_pages_locked(unsigned long int, unsigned long int, unsigned int, page**, int*)'
  [A] 'function long int get_user_pages_remote(mm_struct*, unsigned long int, unsigned long int, unsigned int, page**, vm_area_struct**, int*)'
  [A] 'function void gov_update_cpu_data(dbs_data*)'
  [A] 'function int gpiod_cansleep(const gpio_desc*)'
  [A] 'function int gpiod_is_active_low(const gpio_desc*)'
  [A] 'function int i2c_bit_add_numbered_bus(i2c_adapter*)'
  [A] 'function void i2c_clients_command(i2c_adapter*, unsigned int, void*)'
  [A] 'function void ida_destroy(ida*)'
  [A] 'function inode* iget5_locked(super_block*, unsigned long int, int (inode*, void*)*, int (inode*, void*)*, void*)'
  [A] 'function inode* igrab(inode*)'
  [A] 'function void ihold(inode*)'
  [A] 'function int in_egroup_p(kgid_t)'
  [A] 'function void inode_init_once(inode*)'
  [A] 'function void invalidate_bh_lrus()'
  [A] 'function void io_schedule()'
  [A] 'function void* ioremap_cache(phys_addr_t, size_t)'
  [A] 'function void irq_domain_free_irqs_parent(irq_domain*, unsigned int, unsigned int)'
  [A] 'function irq_data* irq_domain_get_irq_data(irq_domain*, unsigned int)'
  [A] 'function irq_desc* irq_to_desc(unsigned int)'
  [A] 'function bool is_bad_inode(inode*)'
  [A] 'function u64 jiffies64_to_nsecs(u64)'
  [A] 'function int kern_path(const char*, unsigned int, path*)'
  [A] 'function void kernel_sigaction(int, __sighandler_t)'
  [A] 'function void kill_block_super(super_block*)'
  [A] 'function void ktime_get_coarse_real_ts64(timespec64*)'
  [A] 'function bool l2cap_is_socket(socket*)'
  [A] 'function led_default_state led_init_default_state_get(fwnode_handle*)'
  [A] 'function nls_table* load_nls(char*)'
  [A] 'function nls_table* load_nls_default()'
  [A] 'function int lzo1x_1_compress(const unsigned char*, size_t, unsigned char*, size_t*, void*)'
  [A] 'function int lzo1x_decompress_safe(const unsigned char*, size_t, unsigned char*, size_t*)'
  [A] 'function void make_bad_inode(inode*)'
  [A] 'function void mark_buffer_dirty(buffer_head*)'
  [A] 'function media_link* media_create_intf_link(media_entity*, media_interface*, u32)'
  [A] 'function int media_create_pad_link(media_entity*, u16, media_entity*, u16, u32)'
  [A] 'function int media_create_pad_links(const media_device*, const u32, media_entity*, const u16, const u32, media_entity*, const u16, u32, const bool)'
  [A] 'function void media_device_cleanup(media_device*)'
  [A] 'function void media_device_init(media_device*)'
  [A] 'function int media_device_register_entity(media_device*, media_entity*)'
  [A] 'function int media_device_register_entity_notify(media_device*, media_entity_notify*)'
  [A] 'function void media_device_unregister(media_device*)'
  [A] 'function void media_device_unregister_entity(media_entity*)'
  [A] 'function media_intf_devnode* media_devnode_create(media_device*, u32, u32, u32, u32)'
  [A] 'function void media_devnode_remove(media_intf_devnode*)'
  [A] 'function media_link* media_entity_find_link(media_pad*, media_pad*)'
  [A] 'function int media_entity_pads_init(media_entity*, u16, media_pad*)'
  [A] 'function int media_get_pad_index(media_entity*, bool, media_pad_signal_type)'
  [A] 'function void mmc_release_host(mmc_host*)'
  [A] 'function void mmc_wait_for_req(mmc_host*, mmc_request*)'
  [A] 'function dentry* mount_bdev(file_system_type*, int, const char*, void*, int (super_block*, void*, int)*)'
  [A] 'function inode* new_inode(super_block*)'
  [A] 'function clk* of_clk_get_from_provider(of_phandle_args*)'
  [A] 'function thermal_cooling_device* of_cpufreq_cooling_register(cpufreq_policy*)'
  [A] 'function device_node* of_find_node_with_property(device_node*, const char*)'
  [A] 'function int of_get_mac_address(device_node*, u8*)'
  [A] 'function int of_irq_parse_and_map_pci(const pci_dev*, u8, u8)'
  [A] 'function int of_pci_get_devfn(device_node*)'
  [A] 'function int of_pci_parse_bus_range(device_node*, resource*)'
  [A] 'function int of_pci_range_parser_init(of_pci_range_parser*, device_node*)'
  [A] 'function of_pci_range* of_pci_range_parser_one(of_pci_range_parser*, of_pci_range*)'
  [A] 'function int of_pci_range_to_resource(of_pci_range*, device_node*, resource*)'
  [A] 'function page* pagecache_get_page(address_space*, unsigned long int, int, gfp_t)'
  [A] 'function void path_put(const path*)'
  [A] 'function void pci_add_resource(list_head*, resource*)'
  [A] 'function void pci_add_resource_offset(list_head*, resource*, resource_size_t)'
  [A] 'function void pci_bus_add_devices(const pci_bus*)'
  [A] 'function void pci_bus_assign_resources(const pci_bus*)'
  [A] 'function void pci_bus_size_bridges(pci_bus*)'
  [A] 'function u8 pci_common_swizzle(pci_dev*, u8*)'
  [A] 'function void pci_free_resource_list(list_head*)'
  [A] 'function int pci_generic_config_read32(pci_bus*, unsigned int, int, int, u32*)'
  [A] 'function int pci_generic_config_write32(pci_bus*, unsigned int, int, int, u32)'
  [A] 'function irq_domain* pci_msi_create_irq_domain(fwnode_handle*, msi_domain_info*, irq_domain*)'
  [A] 'function void pci_msi_mask_irq(irq_data*)'
  [A] 'function void pci_msi_unmask_irq(irq_data*)'
  [A] 'function int pci_remap_iospace(const resource*, phys_addr_t)'
  [A] 'function void pci_remove_root_bus(pci_bus*)'
  [A] 'function int pci_scan_root_bus_bridge(pci_host_bridge*)'
  [A] 'function void pci_stop_root_bus(pci_bus*)'
  [A] 'function void pci_unmap_iospace(resource*)'
  [A] 'function void pcie_bus_configure_settings(pci_bus*)'
  [A] 'function void pinconf_generic_dump_config(pinctrl_dev*, seq_file*, unsigned long int)'
  [A] 'function int pinctrl_count_index_with_args(const device_node*, const char*)'
  [A] 'function int pinctrl_generic_add_group(pinctrl_dev*, const char*, int*, int, void*)'
  [A] 'function int pinctrl_generic_get_group_count(pinctrl_dev*)'
  [A] 'function const char* pinctrl_generic_get_group_name(pinctrl_dev*, unsigned int)'
  [A] 'function int pinctrl_generic_get_group_pins(pinctrl_dev*, unsigned int, const unsigned int**, unsigned int*)'
  [A] 'function int pinctrl_generic_remove_group(pinctrl_dev*, unsigned int)'
  [A] 'function int pinctrl_parse_index_with_args(const device_node*, const char*, int, of_phandle_args*)'
  [A] 'function int pinctrl_register_and_init(pinctrl_desc*, device*, void*, pinctrl_dev**)'
  [A] 'function void pinctrl_unregister(pinctrl_dev*)'
  [A] 'function int pinmux_generic_add_function(pinctrl_dev*, const char*, const char**, const unsigned int, void*)'
  [A] 'function function_desc* pinmux_generic_get_function(pinctrl_dev*, unsigned int)'
  [A] 'function int pinmux_generic_get_function_count(pinctrl_dev*)'
  [A] 'function int pinmux_generic_get_function_groups(pinctrl_dev*, unsigned int, const char* const**, unsigned int* const)'
  [A] 'function const char* pinmux_generic_get_function_name(pinctrl_dev*, unsigned int)'
  [A] 'function int pinmux_generic_remove_function(pinctrl_dev*, unsigned int)'
  [A] 'function void platform_unregister_drivers(platform_driver* const*, unsigned int)'
  [A] 'function proc_dir_entry* proc_create_single_data(const char*, umode_t, proc_dir_entry*, int (seq_file*, void*)*, void*)'
  [A] 'function int pwm_apply_state(pwm_device*, const pwm_state*)'
  [A] 'function void pwm_free(pwm_device*)'
  [A] 'function pwm_device* pwm_request(int, const char*)'
  [A] 'function int pwmchip_add(pwm_chip*)'
  [A] 'function void pwmchip_remove(pwm_chip*)'
  [A] 'function page* read_cache_page(address_space*, unsigned long int, int (void*, page*)*, void*)'
  [A] 'function int register_filesystem(file_system_type*)'
  [A] 'function int regulator_get_voltage(regulator*)'
  [A] 'function int regulator_set_mode(regulator*, unsigned int)'
  [A] 'function int regulator_set_voltage_time(regulator*, int, int)'
  [A] 'function int remove_proc_subtree(const char*, proc_dir_entry*)'
  [A] 'function device* rpmsg_find_device(device*, rpmsg_channel_info*)'
  [A] 'function int rpmsg_sendto(rpmsg_endpoint*, void*, int, u32)'
  [A] 'function void rproc_add_carveout(rproc*, rproc_mem_entry*)'
  [A] 'function rproc_mem_entry* rproc_mem_entry_init(device*, void*, dma_addr_t, size_t, u32, int (rproc*, rproc_mem_entry*)*, int (rproc*, rproc_mem_entry*)*, const char*, ...)'
  [A] 'function rproc_mem_entry* rproc_of_resm_mem_entry_init(device*, u32, size_t, u32, const char*, ...)'
  [A] 'function irqreturn_t rproc_vq_interrupt(rproc*, int)'
  [A] 'function int rtc_add_group(rtc_device*, const attribute_group*)'
  [A] 'function int sb_min_blocksize(super_block*, int)'
  [A] 'function int sb_set_blocksize(super_block*, int)'
  [A] 'function int schedule_hrtimeout(ktime_t*, const hrtimer_mode)'
  [A] 'function void serial8250_do_pm(uart_port*, unsigned int, unsigned int)'
  [A] 'function void serial8250_do_set_termios(uart_port*, ktermios*, ktermios*)'
  [A] 'function unsigned int serial8250_modem_status(uart_8250_port*)'
  [A] 'function int serial8250_register_8250_port(const uart_8250_port*)'
  [A] 'function void serial8250_resume_port(int)'
  [A] 'function unsigned char serial8250_rx_chars(uart_8250_port*, unsigned char)'
  [A] 'function void serial8250_suspend_port(int)'
  [A] 'function void serial8250_tx_chars(uart_8250_port*)'
  [A] 'function void serial8250_unregister_port(int)'
  [A] 'function void set_nlink(inode*, unsigned int)'
  [A] 'function void set_user_nice(task_struct*, long int)'
  [A] 'function snd_card* snd_card_ref(int)'
  [A] 'function int snd_devm_card_new(device*, int, const char*, module*, size_t, snd_card**)'
  [A] 'function int snd_info_get_line(snd_info_buffer*, char*, int)'
  [A] 'function int snd_interval_refine(snd_interval*, const snd_interval*)'
  [A] 'function int snd_pcm_format_set_silence(snd_pcm_format_t, void*, unsigned int)'
  [A] 'function int snd_pcm_hw_rule_add(snd_pcm_runtime*, unsigned int, int, snd_pcm_hw_rule_func_t, void*, int, ...)'
  [A] 'function int snd_pcm_stop(snd_pcm_substream*, snd_pcm_state_t)'
  [A] 'function int snd_pcm_stop_xrun(snd_pcm_substream*)'
  [A] 'function void snd_pcm_stream_unlock_irqrestore(snd_pcm_substream*, unsigned long int)'
  [A] 'function int snd_soc_bytes_info_ext(snd_kcontrol*, snd_ctl_elem_info*)'
  [A] 'function void snd_timer_close(snd_timer_instance*)'
  [A] 'function void snd_timer_instance_free(snd_timer_instance*)'
  [A] 'function snd_timer_instance* snd_timer_instance_new(const char*)'
  [A] 'function int snd_timer_open(snd_timer_instance*, snd_timer_id*, unsigned int)'
  [A] 'function int snd_timer_start(snd_timer_instance*, unsigned int)'
  [A] 'function int snd_timer_stop(snd_timer_instance*)'
  [A] 'function int sock_no_bind(socket*, sockaddr*, int)'
  [A] 'function int sock_no_connect(socket*, sockaddr*, int, int)'
  [A] 'function int sock_no_getname(socket*, sockaddr*, int)'
  [A] 'function int sock_no_recvmsg(socket*, msghdr*, size_t, int)'
  [A] 'function int sock_no_sendmsg(socket*, msghdr*, size_t)'
  [A] 'function spi_device* spi_new_device(spi_controller*, spi_board_info*)'
  [A] 'function ssize_t store_sampling_rate(gov_attr_set*, const char*, size_t)'
  [A] 'function int submit_bh(int, int, buffer_head*)'
  [A] 'function void suspend_set_ops(const platform_suspend_ops*)'
  [A] 'function void symbol_put_addr(void*)'
  [A] 'function int sync_dirty_buffer(buffer_head*)'
  [A] 'function int sync_filesystem(super_block*)'
  [A] 'function int sysfs_merge_group(kobject*, const attribute_group*)'
  [A] 'function void sysfs_unmerge_group(kobject*, const attribute_group*)'
  [A] 'function int trace_array_destroy(trace_array*)'
  [A] 'function trace_array* trace_array_get_by_name(const char*)'
  [A] 'function int trace_array_init_printk(trace_array*)'
  [A] 'function int trace_array_printk(trace_array*, unsigned long int, const char*, ...)'
  [A] 'function void truncate_inode_pages_final(address_space*)'
  [A] 'function unsigned int uart_get_divisor(uart_port*, unsigned int)'
  [A] 'function void unload_nls(nls_table*)'
  [A] 'function void unlock_buffer(buffer_head*)'
  [A] 'function void unlock_new_inode(inode*)'
  [A] 'function void unpin_user_pages(page**, unsigned long int)'
  [A] 'function int unregister_filesystem(file_system_type*)'
  [A] 'function int usb_ep_set_halt(usb_ep*)'
  [A] 'function int usb_gadget_map_request(usb_gadget*, usb_request*, int)'
  [A] 'function void usb_gadget_unmap_request(usb_gadget*, usb_request*, int)'
  [A] 'function usb_dr_mode usb_get_dr_mode(device*)'
  [A] 'function void v4l2_ctrl_auto_cluster(unsigned int, v4l2_ctrl**, u8, bool)'
  [A] 'function int v4l2_ctrl_handler_setup(v4l2_ctrl_handler*)'
  [A] 'function __poll_t v4l2_ctrl_poll(file*, poll_table_struct*)'
  [A] 'function void v4l2_ctrl_request_complete(media_request*, v4l2_ctrl_handler*)'
  [A] 'function int v4l2_ctrl_request_setup(media_request*, v4l2_ctrl_handler*)'
  [A] 'function int v4l2_ctrl_subdev_log_status(v4l2_subdev*)'
  [A] 'function int v4l2_ctrl_subscribe_event(v4l2_fh*, const v4l2_event_subscription*)'
  [A] 'function int v4l2_device_register_subdev(v4l2_device*, v4l2_subdev*)'
  [A] 'function void v4l2_device_unregister_subdev(v4l2_subdev*)'
  [A] 'function void v4l2_event_queue(video_device*, const v4l2_event*)'
  [A] 'function void v4l2_event_queue_fh(v4l2_fh*, const v4l2_event*)'
  [A] 'function int v4l2_event_subscribe(v4l2_fh*, const v4l2_event_subscription*, unsigned int, const v4l2_subscribed_event_ops*)'
  [A] 'function int v4l2_event_unsubscribe(v4l2_fh*, const v4l2_event_subscription*)'
  [A] 'function int v4l2_fh_is_singular(v4l2_fh*)'
  [A] 'function void v4l2_i2c_subdev_init(v4l2_subdev*, i2c_client*, const v4l2_subdev_ops*)'
  [A] 'function void v4l2_m2m_buf_copy_metadata(const vb2_v4l2_buffer*, vb2_v4l2_buffer*, bool)'
  [A] 'function int v4l2_m2m_dqbuf(file*, v4l2_m2m_ctx*, v4l2_buffer*)'
  [A] 'function int v4l2_m2m_ioctl_create_bufs(file*, void*, v4l2_create_buffers*)'
  [A] 'function int v4l2_m2m_ioctl_expbuf(file*, void*, v4l2_exportbuffer*)'
  [A] 'function int v4l2_m2m_ioctl_prepare_buf(file*, void*, v4l2_buffer*)'
  [A] 'function int v4l2_m2m_ioctl_qbuf(file*, void*, v4l2_buffer*)'
  [A] 'function int v4l2_m2m_querybuf(file*, v4l2_m2m_ctx*, v4l2_buffer*)'
  [A] 'function int v4l2_m2m_register_media_controller(v4l2_m2m_dev*, video_device*, int)'
  [A] 'function int v4l2_m2m_reqbufs(file*, v4l2_m2m_ctx*, v4l2_requestbuffers*)'
  [A] 'function void v4l2_m2m_request_queue(media_request*)'
  [A] 'function int v4l2_m2m_streamoff(file*, v4l2_m2m_ctx*, v4l2_buf_type)'
  [A] 'function int v4l2_m2m_streamon(file*, v4l2_m2m_ctx*, v4l2_buf_type)'
  [A] 'function void v4l2_m2m_try_schedule(v4l2_m2m_ctx*)'
  [A] 'function void v4l2_m2m_unregister_media_controller(v4l2_m2m_dev*)'
  [A] 'function void v4l2_spi_subdev_init(v4l2_subdev*, spi_device*, const v4l2_subdev_ops*)'
  [A] 'function int v4l2_src_change_event_subscribe(v4l2_fh*, const v4l2_event_subscription*)'
  [A] 'function void v4l2_subdev_init(v4l2_subdev*, const v4l2_subdev_ops*)'
  [A] 'function void v4l_bound_align_image(u32*, unsigned int, unsigned int, unsigned int, u32*, unsigned int, unsigned int, unsigned int, unsigned int)'
  [A] 'function int vb2_core_dqbuf(vb2_queue*, unsigned int*, void*, bool)'
  [A] 'function int vb2_core_expbuf(vb2_queue*, int*, unsigned int, unsigned int, unsigned int, unsigned int)'
  [A] 'function __poll_t vb2_core_poll(vb2_queue*, file*, poll_table*)'
  [A] 'function int vb2_core_qbuf(vb2_queue*, unsigned int, void*, media_request*)'
  [A] 'function void vb2_core_querybuf(vb2_queue*, unsigned int, void*)'
  [A] 'function int vb2_core_queue_init(vb2_queue*)'
  [A] 'function void vb2_core_queue_release(vb2_queue*)'
  [A] 'function int vb2_core_reqbufs(vb2_queue*, vb2_memory, unsigned int*)'
  [A] 'function int vb2_core_streamoff(vb2_queue*, unsigned int)'
  [A] 'function int vb2_core_streamon(vb2_queue*, unsigned int)'
  [A] 'function int vb2_request_validate(media_request*)'
  [A] 'function loff_t vfs_llseek(file*, loff_t, int)'
  [A] 'function void videomode_from_timing(const display_timing*, videomode*)'
  [A] 'function int vm_iomap_memory(vm_area_struct*, phys_addr_t, unsigned long int)'
  [A] 'function int xhci_add_endpoint(usb_hcd*, usb_device*, usb_host_endpoint*)'
  [A] 'function int xhci_check_bandwidth(usb_hcd*, usb_device*)'
  [A] 'function int xhci_drop_endpoint(usb_hcd*, usb_device*, usb_host_endpoint*)'
  [A] 'function unsigned int xhci_get_endpoint_index(usb_endpoint_descriptor*)'
  [A] 'function xhci_ep_ctx* xhci_get_ep_ctx(xhci_hcd*, xhci_container_ctx*, unsigned int)'
  [A] 'function void xhci_reset_bandwidth(usb_hcd*, usb_device*)'
  [A] 'function void yield()'

17 Added variables:

  [A] 'const clk_ops clk_divider_ops'
  [A] 'const clk_ops clk_gate_ops'
  [A] 'const clk_ops clk_mux_ops'
  [A] 'int console_printk[4]'
  [A] 'const dma_fence_ops dma_fence_array_ops'
  [A] 'const vm_operations_struct drm_gem_cma_vm_ops'
  [A] 'irq_chip dummy_irq_chip'
  [A] 'const fwnode_operations irqchip_fwnode_ops'
  [A] 'int overflowgid'
  [A] 'int overflowuid'
  [A] 'const kernel_param_ops param_ops_short'
  [A] 'const kernel_param_ops param_ops_ushort'
  [A] 'workqueue_struct* pm_wq'
  [A] 'int snd_ecards_limit'
  [A] 'const dev_pm_ops snd_soc_pm_ops'
  [A] 'const uuid_t uuid_null'
  [A] 'const vb2_mem_ops vb2_dma_contig_memops'

2 Added function symbols not referenced by debug info:

  [A] __arm_smccc_hvc
  [A] memchr

Bug: 211722396
Signed-off-by: Lecopzer Chen <lecopzer.chen@mediatek.com>
Change-Id: Ieb488bd9cdacbc71ac7564a1e7dd925da5c0ba30
2022-01-06 16:27:38 +00:00
Ramji Jiyani
f8bd6cf70d ANDROID: GKI: Add module load time protected symbol lookup
Add CONFIG_MODULE_SIG_PROTECT to enable lookup for the protected
symbols and exports from the build time generated list of symbols
and exports.

Module loading behavior will change as follows:
- Allows Android GKI Modules signed using MODULE_SIG_ALL during build.
- Allows other modules to load if they don't violate the access to
  Android GKI protected symbols and do not export the symbols already
  exported by the Android GKI modules. Loading will fail and return
  -EACCES (Permission denied) if symbol access contidions are not met.

Bug: 200082547
Test: Treehugger
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Change-Id: Iedb99d8434db82a9c7f18ffd363d84f4b2316c5b
(cherry picked from commit 9ab6a242258a9ac17506b74c6ed7332703d536f4)
2022-01-05 18:38:02 +00:00
Will McVicker
b64326a364 ANDROID: GKI: add symbol list for raviole
This symbol list was generated based off of the
aosp/gs-android-gs-raviole-mainline repo project for Pixel 6.

Bug: 212476972
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I5ce2e97408b98596c6284ad054f5588142fd4c44
2021-12-29 16:28:54 +00:00
Greg Kroah-Hartman
1592d4fa49 ANDROID: GKI: update symbol list for usleep_range change
Commit 5a960e533c ("timers: implement usleep_idle_range()") changed
the usleep_range() call to be an inline function that calls
usleep_range_state() instead.  So fix up the few usages of this symbol
in the symbol list so the build starts to work again.

Fixes: 5a960e533c ("timers: implement usleep_idle_range()")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1692276e3c7d42e4f8a72c508843ff8fc28c9196
2021-12-15 18:34:29 +01:00
Victor Shutemov
5f6a4664cb ANDROID: GKI: update virtual device symbol list
Reorder vlan symbols and put under the right module comment.

Bug: 210119134

Signed-off-by: Victor Shutemov <victor@haleytek.com>
Change-Id: Ie1ea9c7ded3fec99cb2951a8f5129a8b5a16a88d
2021-12-15 10:59:55 +00:00
Victor Shutemov
d3df2d1419 ANDROID: GKI: Add VLAN_8021Q
VLAN_8021Q is needed for haleytek vehicle projects.
It's not possible to add as a vendor module since
building as module changes built-in data structures.

Bug: 210119134
Signed-off-by: Victor Shutemov <victor@haleytek.com>
Change-Id: I2098a3bc2fe25bfb3cc69cac947ab4b94c1f5e7f
2021-12-14 17:56:46 +00:00
Donnie Pollitz
92d60ba2a3 ANDROID: GKI: Add symbols abi for USB IP kernel modules.
Bug: 207100354
Test: Manually, Emulator boots up.

Signed-off-by: Donnie Pollitz <donpollitz@google.com>
Change-Id: I7cfcca64af981ebdbe52f8e224b6194f31203f89
2021-12-04 11:10:33 +01:00
John Stultz
d48b369cee ANDROID: db845c: Add symbol list file
The symbol list file for db845c was dropped
so this patch re-adds it so we can boot the
GKI target kernels

Bug: 146449535
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Idca2363a335dca54c605d5ed292f20c0ba8d3e48
2021-11-22 21:45:34 +00:00
Steve Muckle
9b4afda207 ANDROID: GKI: add required symbols for btusb to virtual device
Bug: 202405948
Signed-off-by: Steve Muckle <smuckle@google.com>
Change-Id: Ibe8dbd56a93f709b681dce81ac519ab0d59d42a3
2021-11-11 00:00:31 +00:00
Matthias Maennich
eff25c4b7f ANDROID: add initial symbol list for virtual devices
Generated (without symbol trimming) by:
  $ BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh
  $ BUILD_CONFIG=common-modules/virtual-device/build.config.virtual_device.aarch64 build/build.sh
  $ build/abi/extract_symbols --symbol-list common/android/abi_gki_aarch64_virtual_device out/android13-5.15/dist/

Bug: 204472986
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: Ie79cf2d3a4893b8d07bf3bc7ff48373fd369be6a
2021-11-02 16:39:15 +00:00
Matthias Maennich
5bf56d2150 ANDROID: Initial branch setup for android13-5.15
Bug: 204472986
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I03fc890aef8de06c655b98286768dc9c57b4709c
2021-11-02 10:19:03 +00:00