ANDROID: ABI/Whitelist: update for Cuttlefish

This adds a whitelist for the symbols used by the cuttlefish device and
updates the ABI representation accordingly.

These are the steps:

1) Perform a clean device build (Cuttlefish):

  $ BUILD_CONFIG=common/build.config.cuttlefish.aarch64 build/build.sh

2) Extract the ABI whitelist for this device

  $ build/abi/extract_symbols out/android-4.19/dist/ --whitelist common/abi_gki_aarch64_cuttlefish_whitelist

3) Add the whitelist to the list of ADDITIONAL_KMI_WHITELISTS

4) Update the ABI representation for the GKI

  $ BUILD_CONFIG=common/build.config.gki.aarch64 build/build_abi.sh --update

Bug: 147894960
Change-Id: I433b200dd5b79bf9ee9adeea1db7b66c571f6539
Signed-off-by: Matthias Maennich <maennich@google.com>
This commit is contained in:
Matthias Maennich 2020-02-12 10:21:57 +00:00
parent e02f4e66ef
commit cddc2eb575
3 changed files with 57451 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,835 @@
[abi_whitelist]
# commonly used symbols
add_wait_queue
alloc_etherdev_mqs
__alloc_pages_nodemask
__alloc_skb
__alloc_workqueue_key
__arch_copy_from_user
__arch_copy_to_user
arm64_const_caps_ready
bus_register
bus_unregister
cancel_delayed_work_sync
capable
__check_object_size
__const_udelay
consume_skb
cpu_hwcap_keys
cpu_hwcaps
cpumask_next
cpu_number
__cpu_online_mask
cpus_read_lock
cpus_read_unlock
debug_smp_processor_id
delayed_work_timer_fn
destroy_workqueue
_dev_err
device_create_file
device_register
device_unregister
_dev_info
__dev_kfree_skb_any
devm_kmalloc
dev_queue_xmit
dev_set_name
_dev_warn
dma_alloc_from_dev_coherent
dma_buf_export
dma_buf_fd
dma_buf_put
dma_fence_release
dma_fence_wait_timeout
dma_release_from_dev_coherent
down_write
dummy_dma_ops
ethtool_op_get_link
eth_validate_addr
event_triggers_call
fd_install
finish_wait
flush_work
fput
free_irq
free_netdev
__free_pages
get_random_bytes
get_unused_fd_flags
ida_alloc_range
ida_free
init_net
init_timer_key
init_wait_entry
__init_waitqueue_head
jiffies
kfree
kfree_skb
__kmalloc
kmalloc_caches
kmem_cache_alloc_trace
kobject_put
kvfree
kvmalloc_node
__ll_sc_atomic64_add
__ll_sc_atomic64_andnot
__ll_sc_atomic64_or
__ll_sc_atomic_add
__ll_sc_atomic_sub_return
__ll_sc___cmpxchg_case_mb_4
__local_bh_enable_ip
lock_sock_nested
memcpy
memset
memstart_addr
misc_deregister
misc_register
module_put
msleep
__mutex_init
mutex_lock
mutex_lock_interruptible
mutex_trylock
mutex_unlock
netdev_err
netdev_info
netdev_rx_handler_register
netdev_rx_handler_unregister
netdev_upper_dev_unlink
netif_carrier_off
netif_carrier_on
netif_device_detach
netif_tx_stop_all_queues
netif_tx_wake_queue
noop_llseek
nr_cpu_ids
param_ops_bool
param_ops_charp
param_ops_int
param_ops_uint
passthru_features_check
pci_disable_device
pci_enable_device
pci_read_config_dword
__pci_register_driver
pci_set_master
pci_unregister_driver
__per_cpu_offset
perf_trace_buf_alloc
perf_trace_run_bpf_submit
platform_device_add
platform_device_alloc
platform_device_del
platform_device_put
platform_device_unregister
__platform_driver_register
platform_driver_unregister
preempt_count_add
preempt_count_sub
preempt_schedule
preempt_schedule_notrace
prepare_to_wait_event
printk
put_device
__put_page
queue_delayed_work_on
queue_work_on
_raw_read_lock
_raw_read_unlock
_raw_spin_lock
_raw_spin_lock_bh
_raw_spin_lock_irq
_raw_spin_lock_irqsave
_raw_spin_unlock
_raw_spin_unlock_bh
_raw_spin_unlock_irq
_raw_spin_unlock_irqrestore
__rcu_read_lock
__rcu_read_unlock
refcount_dec_and_test_checked
refcount_inc_checked
register_netdev
register_shrinker
release_sock
remove_wait_queue
request_threaded_irq
reservation_object_add_excl_fence
rtnl_lock
rtnl_unlock
schedule
schedule_timeout
schedule_timeout_uninterruptible
seq_printf
sg_free_table
sg_init_one
sg_init_table
sg_next
skb_clone
skb_put
sk_free
snd_device_new
snd_info_create_card_entry
snd_pcm_alt_chmaps
snprintf
sprintf
sscanf
__stack_chk_fail
__stack_chk_guard
strcmp
strcpy
strlcpy
strlen
strncpy
strstr
synchronize_irq
synchronize_net
system_wq
trace_define_field
trace_event_buffer_commit
trace_event_buffer_reserve
trace_event_ignore_this_pid
trace_event_raw_init
trace_event_reg
trace_handle_return
trace_raw_output_prep
trace_seq_printf
unregister_netdev
unregister_netdevice_queue
up_read
up_write
vmap
vunmap
wait_woken
__wake_up
__warn_printk
woken_wake_function
ww_mutex_lock_interruptible
ww_mutex_unlock
# required by binfmt_misc.ko
bin2hex
bprm_change_interp
clear_inode
__close_fd
copy_strings_kernel
_ctype
current_time
d_drop
default_llseek
dentry_open
d_instantiate
dput
drop_nlink
filp_close
free_pages
__get_free_pages
get_next_ino
iput
kernel_read
kill_litter_super
kstrtoint
lockref_get
lookup_one_len
mount_single
new_inode
open_exec
prepare_binprm
_raw_write_lock
_raw_write_unlock
__register_binfmt
register_filesystem
remove_arg_zero
search_binary_handler
simple_fill_super
simple_pin_fs
simple_read_from_buffer
simple_release_fs
simple_statfs
strchr
string_unescape
strrchr
unregister_binfmt
unregister_filesystem
would_dump
# required by blk-mq-virtio.ko
blk_mq_map_queues
# required by dummy-cpufreq.ko
cpufreq_generic_attr
cpufreq_register_driver
cpufreq_unregister_driver
# required by dummy_hcd.ko
device_remove_file
ktime_get_ts64
memzero_explicit
mod_timer
platform_device_add_data
scnprintf
sg_miter_next
sg_miter_start
sg_miter_stop
usb_add_gadget_udc
usb_add_hcd
usb_create_hcd
usb_create_shared_hcd
usb_del_gadget_udc
usb_disabled
usb_ep_set_maxpacket_limit
usb_gadget_giveback_request
usb_gadget_udc_reset
usb_get_dev
usb_hcd_check_unlink_urb
usb_hcd_giveback_urb
usb_hcd_is_primary_hcd
usb_hcd_link_urb_to_ep
usb_hcd_poll_rh_status
usb_hcd_resume_root_hub
usb_hcd_unlink_urb_from_ep
usb_put_dev
usb_put_hcd
usb_remove_hcd
usleep_range
# required by failover.ko
netdev_master_upper_dev_link
register_netdevice_notifier
rtnl_is_locked
unregister_netdevice_notifier
# required by gnss-cmdline.ko
bus_find_device_by_name
device_find_child
kstrdup
platform_bus_type
strsep
# required by gnss-serial.ko
gnss_allocate_device
gnss_deregister_device
gnss_insert_raw
gnss_put_device
gnss_register_device
of_property_read_variable_u32_array
__pm_runtime_disable
pm_runtime_enable
__pm_runtime_idle
__pm_runtime_resume
serdev_device_close
serdev_device_open
serdev_device_set_baudrate
serdev_device_set_flow_control
serdev_device_wait_until_sent
serdev_device_write
serdev_device_write_wakeup
# required by ion-alloc.ko
contig_page_data
down_read
freezing_slow_path
__init_rwsem
kernel_kobj
kobject_create_and_add
kthread_create_on_node
__ll_sc_atomic64_sub
mod_node_page_state
plist_add
rb_erase
rb_insert_color
__refrigerator
remap_pfn_range
sched_setscheduler
sg_alloc_table
__sg_page_iter_next
__sg_page_iter_start
split_page
sysfs_create_groups
system_freezing_cnt
totalram_pages
vfree
vmalloc
vm_map_ram
vm_unmap_ram
wake_up_process
# required by nd_virtio.ko
bio_alloc_bioset
bio_chain
fs_bio_set
submit_bio
# required by net_failover.ko
call_netdevice_notifiers
dev_close
dev_get_stats
dev_mc_sync_multiple
dev_mc_unsync
dev_open
dev_set_mtu
dev_uc_sync_multiple
dev_uc_unsync
__ethtool_get_link_ksettings
netdev_change_features
netdev_increment_features
netdev_lower_state_changed
pci_bus_type
# required by rtc-test.ko
add_timer
del_timer
devm_rtc_allocate_device
ktime_get_real_seconds
__rtc_register_device
rtc_time64_to_tm
rtc_tm_to_time64
rtc_update_irq
# required by snd-ac97-codec.ko
pci_read_config_word
simple_strtoul
snd_component_add
snd_ctl_add
_snd_ctl_add_slave
snd_ctl_boolean_mono_info
snd_ctl_enum_info
snd_ctl_find_id
snd_ctl_make_virtual_master
snd_ctl_new1
snd_ctl_remove_id
snd_info_free_entry
snd_info_register
snd_interval_refine
snd_pcm_hw_rule_add
snd_pcm_std_chmaps
strcat
# required by snd-intel8x0.ko
ktime_get
param_ops_bint
pci_iomap
pci_release_regions
pci_request_regions
pci_write_config_dword
snd_card_disconnect
snd_card_free
snd_card_new
snd_card_register
snd_dma_alloc_pages
snd_dma_free_pages
snd_pci_quirk_lookup
snd_pcm_add_chmap_ctls
snd_pcm_hw_constraint_integer
snd_pcm_hw_constraint_list
snd_pcm_hw_constraint_msbits
snd_pcm_lib_free_pages
snd_pcm_lib_ioctl
snd_pcm_lib_malloc_pages
snd_pcm_lib_preallocate_pages_for_all
snd_pcm_limit_hw_rates
snd_pcm_new
snd_pcm_period_elapsed
snd_pcm_set_ops
snd_pcm_suspend_all
# required by ttm.ko
clear_page
copy_page
dev_driver_string
devres_add
__devres_alloc_node
devres_destroy
devres_free
dma_buf_get
dma_fence_enable_sw_signaling
dma_fence_signal
drm_class_device_register
drm_class_device_unregister
drm_clflush_pages
drm_ht_create
drm_ht_find_item
drm_ht_insert_item
drm_ht_just_insert_please
drm_ht_remove
drm_ht_remove_item
drm_mm_init
drm_mm_insert_node_in_range
drm_mm_print
drm_mm_remove_node
drm_mm_takedown
__drm_printfn_debug
drm_vma_offset_add
drm_vma_offset_lookup_locked
drm_vma_offset_manager_destroy
drm_vma_offset_manager_init
drm_vma_offset_remove
flush_workqueue
__ioremap
__iounmap
kfree_call_rcu
kobject_del
kobject_init_and_add
__ll_sc_atomic64_add_return_relaxed
__ll_sc_atomic_sub
__ll_sc___cmpxchg_case_mb_8
mark_page_accessed
__memcpy_fromio
__memcpy_toio
__memset_io
nr_swap_pages
refcount_inc_not_zero_checked
reservation_object_add_shared_fence
reservation_object_copy_fences
reservation_object_reserve_shared
reservation_object_test_signaled_rcu
reservation_object_wait_timeout_rcu
reservation_ww_class
send_sig
set_page_dirty
shmem_file_setup
shmem_read_mapping_page_gfp
si_mem_available
si_meminfo
unmap_mapping_range
unregister_shrinker
vmalloc_to_page
vm_get_page_prot
vm_insert_mixed
vm_insert_pfn
ww_mutex_lock
# required by virt_wifi.ko
cfg80211_connect_done
cfg80211_disconnected
cfg80211_inform_bss_data
cfg80211_put_bss
cfg80211_scan_done
__dev_get_by_index
dev_printk
ether_setup
ktime_get_with_offset
netdev_upper_dev_link
netif_stacked_transfer_operstate
register_netdevice
rtnl_link_register
rtnl_link_unregister
wiphy_free
wiphy_new_nm
wiphy_register
wiphy_unregister
# required by virtio-gpu.ko
bpf_trace_run2
dma_fence_context_alloc
dma_fence_init
dma_fence_match_context
dma_fence_signal_locked
drm_add_edid_modes
drm_add_modes_noedid
drm_atomic_helper_check
drm_atomic_helper_cleanup_planes
drm_atomic_helper_commit
drm_atomic_helper_commit_hw_done
drm_atomic_helper_commit_modeset_disables
drm_atomic_helper_commit_modeset_enables
drm_atomic_helper_commit_planes
drm_atomic_helper_connector_destroy_state
drm_atomic_helper_connector_duplicate_state
drm_atomic_helper_connector_reset
drm_atomic_helper_crtc_destroy_state
drm_atomic_helper_crtc_duplicate_state
drm_atomic_helper_crtc_reset
drm_atomic_helper_disable_plane
drm_atomic_helper_page_flip
drm_atomic_helper_plane_destroy_state
drm_atomic_helper_plane_duplicate_state
drm_atomic_helper_plane_reset
drm_atomic_helper_set_config
drm_atomic_helper_shutdown
drm_atomic_helper_update_plane
drm_atomic_helper_wait_for_vblanks
drm_compat_ioctl
drm_connector_attach_edid_property
drm_connector_attach_encoder
drm_connector_cleanup
drm_connector_init
drm_connector_register
drm_connector_unregister
drm_connector_update_edid_property
drm_crtc_cleanup
drm_crtc_init_with_planes
drm_crtc_send_vblank_event
drm_cvt_mode
drm_dbg
drm_dev_alloc
drm_dev_put
drm_dev_register
drm_dev_set_unique
drm_do_get_edid
drm_encoder_cleanup
drm_encoder_init
drm_err
drm_framebuffer_init
drm_gem_fb_create_handle
drm_gem_fb_destroy
drm_gem_handle_create
drm_gem_object_init
drm_gem_object_lookup
drm_gem_object_put_unlocked
drm_gem_object_release
drm_gem_prime_export
drm_gem_prime_fd_to_handle
drm_gem_prime_handle_to_fd
drm_gem_prime_import
drm_gem_prime_mmap
drm_global_item_ref
drm_global_item_unref
drm_helper_hpd_irq_event
drm_helper_mode_fill_fb_struct
drm_helper_probe_single_connector_modes
drm_ioctl
drm_kms_helper_hotplug_event
drm_mode_config_cleanup
drm_mode_config_init
drm_mode_config_reset
drm_mode_probed_add
drm_open
drm_plane_cleanup
drm_poll
drm_prime_pages_to_sg
drm_put_dev
drm_read
drm_release
drm_set_preferred_mode
drm_universal_plane_init
__get_task_comm
kmalloc_order_trace
kmem_cache_alloc
kmem_cache_create
kmem_cache_destroy
kmem_cache_free
memdup_user
put_unused_fd
remove_conflicting_framebuffers
sg_alloc_table_from_pages
sync_file_create
sync_file_get_fence
__tracepoint_dma_fence_emit
# required by virtio-rng.ko
complete
hwrng_register
hwrng_unregister
wait_for_completion
wait_for_completion_killable
# required by virtio.ko
add_uevent_var
device_add
device_initialize
driver_register
driver_unregister
ida_destroy
panic
# required by virtio_blk.ko
__alloc_disk_node
blk_cleanup_queue
blk_execute_rq
blk_get_request
blk_mq_alloc_tag_set
blk_mq_complete_request
blk_mq_end_request
blk_mq_free_tag_set
blk_mq_init_queue
blk_mq_quiesce_queue
blk_mq_start_request
blk_mq_start_stopped_hw_queues
blk_mq_stop_hw_queue
blk_mq_unquiesce_queue
blk_put_request
blk_queue_alignment_offset
blk_queue_io_min
blk_queue_io_opt
blk_queue_logical_block_size
blk_queue_max_hw_sectors
blk_queue_max_segments
blk_queue_max_segment_size
blk_queue_physical_block_size
blk_queue_write_cache
blk_rq_map_kern
blk_rq_map_sg
blk_status_to_errno
del_gendisk
device_add_disk
_dev_notice
kobject_uevent_env
memmove
put_disk
register_blkdev
revalidate_disk
set_disk_ro
string_get_size
__sysfs_match_string
unregister_blkdev
# required by virtio_crypto.ko
cpu_bit_bitmap
cpu_topology
crypto_ablkcipher_type
crypto_engine_alloc_init
crypto_engine_exit
crypto_engine_start
crypto_finalize_ablkcipher_request
crypto_register_alg
crypto_transfer_ablkcipher_request_to_engine
crypto_unregister_alg
kzfree
__ll_sc_atomic_add_return
scatterwalk_map_and_copy
sg_nents
sg_nents_for_len
try_module_get
# required by virtio_input.ko
input_alloc_absinfo
input_allocate_device
input_event
input_free_device
input_mt_init_slots
input_register_device
input_set_abs_params
input_unregister_device
# required by virtio_mmio.ko
device_for_each_child
devm_ioremap
devm_kfree
__devm_request_region
iomem_resource
memparse
platform_device_register_full
platform_get_irq
platform_get_resource
# required by virtio_net.ko
bpf_prog_add
bpf_prog_put
bpf_prog_sub
bpf_warn_invalid_xdp_action
build_skb
__cpuhp_remove_state
__cpuhp_setup_state
__cpuhp_state_add_instance
__cpuhp_state_remove_instance
cpumask_next_wrap
eth_commit_mac_addr_change
eth_prepare_mac_addr_change
ethtool_op_get_ts_info
eth_type_trans
flow_keys_basic_dissector
kmemdup
__napi_alloc_skb
napi_complete_done
napi_consume_skb
napi_disable
napi_gro_receive
napi_hash_del
__napi_schedule
napi_schedule_prep
netdev_notify_peers
netdev_warn
netif_device_attach
netif_napi_add
netif_napi_del
netif_schedule_queue
netif_set_real_num_rx_queues
netif_set_real_num_tx_queues
__netif_set_xps_queue
net_ratelimit
nf_conntrack_destroy
_raw_spin_trylock
skb_add_rx_frag
skb_coalesce_rx_frag
__skb_flow_dissect
skb_page_frag_refill
skb_partial_csum_set
skb_to_sgvec
skb_tstamp_tx
__sw_hweight64
__tracepoint_xdp_exception
xdp_do_flush_map
xdp_do_redirect
xdp_return_frame
xdp_return_frame_rx_napi
xdp_rxq_info_reg
xdp_rxq_info_reg_mem_model
xdp_rxq_info_unreg
# required by virtio_pci.ko
get_device
irq_set_affinity_hint
pci_alloc_irq_vectors_affinity
pci_find_capability
pci_find_ext_capability
pci_find_next_capability
pci_free_irq_vectors
pci_iomap_range
pci_irq_get_affinity
pci_irq_vector
pci_read_config_byte
pci_release_selected_regions
pci_request_selected_regions
# required by virtio_pmem.ko
nvdimm_bus_register
nvdimm_bus_unregister
nvdimm_pmem_region_create
# required by virtio_ring.ko
alloc_pages_exact
free_pages_exact
kimage_voffset
# required by vmw_vsock_virtio_transport_common.ko
bpf_trace_run10
bpf_trace_run8
cancel_delayed_work
_copy_from_iter_full
_copy_to_iter
trace_print_symbols_seq
# required by vsock.ko
autoremove_wake_function
__module_get
nonseekable_open
prandom_u32
prepare_to_wait
proto_register
proto_unregister
__put_cred
_raw_write_lock_bh
_raw_write_unlock_bh
security_sock_graft
sk_alloc
skb_dequeue
sock_init_data
sock_no_accept
sock_no_getsockopt
sock_no_ioctl
sock_no_listen
sock_no_mmap
sock_no_sendpage
sock_no_setsockopt
sock_no_socketpair
sock_queue_rcv_skb
sock_register
sock_unregister
# required by vsock_diag.ko
__netlink_dump_start
__nlmsg_put
sock_diag_register
sock_diag_save_cookie
sock_diag_unregister
sock_i_ino

View File

@ -4,3 +4,4 @@
ABI_DEFINITION=abi_gki_aarch64.xml
KMI_WHITELIST=abi_gki_aarch64_whitelist
ADDITIONAL_KMI_WHITELISTS="abi_gki_aarch64_cuttlefish_whitelist"