Merge branch 'android12-5.10' into android12-5.10-lts

Sync up with android12-5.10 for the following commits:

29af14b086 ANDROID: GKI: Update symbols to symbol list
8d7f609cda ANDROID: fips140: add name and version, and a function to retrieve them
64d769e53f ANDROID: fips140: add service indicators
b9066e59a5 ANDROID: GKI: Update symbols to symbol list
1eae8229b7 ANDROID: GKI: Update symbols to symbol list
aee113fcef ANDROID: Incremental fs: Fix dentry get/put imbalance on vfs_mkdir() failure
9cafb6afaa ANDROID: GKI: Update symbols to symbol list
6ad609468d ANDROID: Fix mmu_notifier imbalance
62f22f5c05 ANDROID: ABI: Update symbol list for IMX
f5284c5c9c ANDROID: Update symbol list for mtk
8a30a2cadd ANDROID: GKI: update virtual device symbol list
cf721d6c46 ANDROID: ABI: add new symbols required by fips140.ko
482b0323cf ANDROID: fips140: zeroize temporary values from integrity check
ecf9341134 ANDROID: fips140: remove in-place updating of live algorithms
e45108ecff ANDROID: fips140: block crypto operations until tests complete
6b995f5a54 ANDROID: fips140: preserve RELA sections without relying on the module loader
e8d56bd78b ANDROID: module: apply special LTO treatment to .text even if CFI is disabled
52b70d491b ANDROID: fips140: use FIPS140_CFLAGS when compiling fips140-selftests.c
e5b14396f9 ANDROID: fips140: take into account AES-GCM not being approvable
960ebb2b56 ANDROID: fips140: add jitterentropy to fips140 module
2ee56aad31 ANDROID: fips140: add AES-CMAC
2b5843ae2d ANDROID: fips140: add AES-CBC-CTS
1be58af077 ANDROID: fips140: remove non-prediction-resistant DRBG test
17ccefe140 ANDROID: fips140: use full 16-byte IV
b397a0387c ANDROID: fips140: test all implementations
82c940e0e1 ANDROID: Update symbol list for mtk
8d68a30fe1 ANDROID: ASoC: soc-pcm: Get all BEs along DAPM path
ea440234c7 ANDROID: GKI: refresh XML following ANDROID_KABI_USE change
f8b361d17d ANDROID: GKI: rework the ANDROID_KABI_USE() macro to not use __UNIQUE()
ad8da78c87 UPSTREAM: sched/scs: Reset the shadow stack when idle_task_exit
74782dd0ce ANDROID: cpuhp/pause: add function define if not define CONFIG_CPUSETS
75a5637ccf ANDROID: GKI: Add a symbol to vendor symbol list
1c0e68339c ANDROID: f2fs: fix potential deadlock by android ftrace
8d5dd0a5a4 ANDROID: gki_defconfig: enable CONFIG_USB_CONFIGFS_F_UVC
d4091df63c ANDROID: GKI: Update symbols list for vivo
a451a6c447 ANDROID: GKI: Add missing symbol list whitespace
a32d8ee384 Revert "ANDROID: mpam: add vendor hook to record MPAM"
2ccbb92f7f ANDROID: userfaultfd: Fix merge resolution: validate_range()
09bd9e940e ANDROID: cpuhp/pause: schedule cpu_hotplug_work on resume cpu
2a813b466b ANDROID: GKI: Update symbols to abi_gki_aarch64_oplus
a8c611fa24 ANDROID: GKI: Update symbols list for vivo
16493a3c87 Revert "BACKPORT: ASoC: soc-pcm: Get all BEs along DAPM path"
a84e45d3c3 FROMGIT: usb: dwc3: gadget: Skip resizing EP's TX FIFO if already resized
168de6b1d9 FROMGIT: usb: dwc3: gadget: Change to dev_dbg() when queuing to inactive gadget/ep
6cb41901ea ANDROID: ABI: update allowed list for galaxy
48e5c07fe0 ANDROID: dma_heap: add dma_parms for uncached heap
a0345d4590 ANDROID: GKI: rockchip: Enable symbols for pinctrl and rk8xx
8e9111c2b2 ANDROID: GKI: rockchip: Enable symbols for typec
28edc30761 ANDROID: GKI: rockchip: Add build script
9329ddc34d ANDROID: GKI: Add some symbols to symbol list to support vendor module
bd4a84253c UPSTREAM:  core: Add L2P entry swap quirk for Micron UFS
44b339535e ANDROID: gki_defconfig: remove CONFIG_UBSAN_MISC entry
71f70987f9 UPSTREAM: ubsan: remove overflow checks
65a04c1a8e UPSTREAM: ubsan: disable unsigned-overflow check for i386
7611578ecb UPSTREAM: ubsan: expand tests and reporting
fca16257ca UPSTREAM: ubsan: remove UBSAN_MISC in favor of individual options
c2985e13dd UPSTREAM: ubsan: enable for all*config builds
5eb5780afe UPSTREAM: ubsan: disable UBSAN_TRAP for all*config
c108d79a12 UPSTREAM: ubsan: disable object-size sanitizer under GCC
9ecd3c915d UPSTREAM: ubsan: move cc-option tests into Kconfig
70e365831f UPSTREAM: ubsan: remove redundant -Wno-maybe-uninitialized
45b1eb7115 UPSTREAM: mm/mremap: fix BUILD_BUG_ON() error in get_extent

Due to api additions in android12-5.10, this also adds more api symbols
to track:

Leaf changes summary: 75 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 53 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 22 Added variables

53 Added functions:

  [A] 'function __sum16 __skb_checksum_complete(sk_buff*)'
  [A] 'function int __traceiter_android_vh_cpu_up(void*, unsigned int)'
  [A] 'function int __traceiter_android_vh_cpufreq_acct_update_power(void*, u64, task_struct*, unsigned int)'
  [A] 'function int __traceiter_android_vh_filemap_fault_cache_page(void*, vm_fault*, page*)'
  [A] 'function int __traceiter_android_vh_filemap_fault_get_page(void*, vm_fault*, page**, bool*)'
  [A] 'function int __traceiter_android_vh_mem_cgroup_alloc(void*, mem_cgroup*)'
  [A] 'function int __traceiter_android_vh_mem_cgroup_css_offline(void*, cgroup_subsys_state*, mem_cgroup*)'
  [A] 'function int __traceiter_android_vh_mem_cgroup_css_online(void*, cgroup_subsys_state*, mem_cgroup*)'
  [A] 'function int __traceiter_android_vh_mem_cgroup_free(void*, mem_cgroup*)'
  [A] 'function int __traceiter_android_vh_mem_cgroup_id_remove(void*, mem_cgroup*)'
  [A] 'function int __traceiter_android_vh_mmap_region(void*, vm_area_struct*, unsigned long int)'
  [A] 'function int __traceiter_android_vh_scmi_timeout_sync(void*, int*)'
  [A] 'function int __traceiter_android_vh_shrink_slab_bypass(void*, gfp_t, int, mem_cgroup*, int, bool*)'
  [A] 'function int __traceiter_android_vh_snd_soc_card_get_comp_chain(void*, bool*)'
  [A] 'function int __traceiter_android_vh_try_to_unmap_one(void*, vm_area_struct*, page*, unsigned long int, bool)'
  [A] 'function int __traceiter_sched_stat_sleep(void*, task_struct*, u64)'
  [A] 'function int __traceiter_sched_waking(void*, task_struct*)'
  [A] 'function int __typec_altmode_register_driver(typec_altmode_driver*, module*)'
  [A] 'function int ahash_register_instance(crypto_template*, ahash_instance*)'
  [A] 'function int blkcg_activate_policy(request_queue*, const blkcg_policy*)'
  [A] 'function void blkcg_deactivate_policy(request_queue*, const blkcg_policy*)'
  [A] 'function int blkcg_policy_register(blkcg_policy*)'
  [A] 'function void blkcg_policy_unregister(blkcg_policy*)'
  [A] 'function blkcg_gq* blkg_lookup_slowpath(blkcg*, request_queue*, bool)'
  [A] 'function int crypto_grab_spawn(crypto_spawn*, crypto_instance*, const char*, u32, u32)'
  [A] 'function int crypto_register_aeads(aead_alg*, int)'
  [A] 'function int crypto_register_ahashes(ahash_alg*, int)'
  [A] 'function int crypto_register_rng(rng_alg*)'
  [A] 'function crypto_tfm* crypto_spawn_tfm(crypto_spawn*, u32, u32)'
  [A] 'function void crypto_unregister_rng(rng_alg*)'
  [A] 'function cgroup_subsys_state* css_next_descendant_pre(cgroup_subsys_state*, cgroup_subsys_state*)'
  [A] 'function int dump_align(coredump_params*, int)'
  [A] 'function int dump_emit(coredump_params*, void*, int)'
  [A] 'function fwnode_handle* fwnode_create_software_node(const property_entry*, const fwnode_handle*)'
  [A] 'function int ip6_local_out(net*, sock*, sk_buff*)'
  [A] 'function int ip6_route_me_harder(net*, sock*, sk_buff*)'
  [A] 'function int ip_local_out(net*, sock*, sk_buff*)'
  [A] 'function cgroup_subsys_state* kthread_blkcg()'
  [A] 'function void nf_ct_attach(sk_buff*, const sk_buff*)'
  [A] 'function cgroup_subsys_state* of_css(kernfs_open_file*)'
  [A] 'function pinctrl_gpio_range* pinctrl_find_gpio_range_from_pin(pinctrl_dev*, unsigned int)'
  [A] 'function void skb_dump(const char*, const sk_buff*, bool)'
  [A] 'function int spi_write_then_read(spi_device*, void*, unsigned int, void*, unsigned int)'
  [A] 'function tcpm_port* tcpm_register_port(device*, tcpc_dev*)'
  [A] 'function void tcpm_unregister_port(tcpm_port*)'
  [A] 'function typec_port* typec_altmode2port(typec_altmode*)'
  [A] 'function int typec_altmode_enter(typec_altmode*, u32*)'
  [A] 'function int typec_altmode_exit(typec_altmode*)'
  [A] 'function int typec_altmode_notify(typec_altmode*, unsigned long int, void*)'
  [A] 'function void typec_altmode_unregister_driver(typec_altmode_driver*)'
  [A] 'function int typec_altmode_vdm(typec_altmode*, const u32, const u32*, int)'
  [A] 'function int typec_get_negotiated_svdm_version(typec_port*)'
  [A] 'function int vb2_create_bufs(vb2_queue*, v4l2_create_buffers*)'

22 Added variables:

  [A] 'tracepoint __tracepoint_android_rvh_tcp_recvmsg'
  [A] 'tracepoint __tracepoint_android_rvh_tcp_recvmsg_stat'
  [A] 'tracepoint __tracepoint_android_rvh_tcp_sendmsg_locked'
  [A] 'tracepoint __tracepoint_android_rvh_udp_recvmsg'
  [A] 'tracepoint __tracepoint_android_rvh_udp_sendmsg'
  [A] 'tracepoint __tracepoint_android_vh_cpu_up'
  [A] 'tracepoint __tracepoint_android_vh_cpufreq_acct_update_power'
  [A] 'tracepoint __tracepoint_android_vh_filemap_fault_cache_page'
  [A] 'tracepoint __tracepoint_android_vh_filemap_fault_get_page'
  [A] 'tracepoint __tracepoint_android_vh_mem_cgroup_alloc'
  [A] 'tracepoint __tracepoint_android_vh_mem_cgroup_css_offline'
  [A] 'tracepoint __tracepoint_android_vh_mem_cgroup_css_online'
  [A] 'tracepoint __tracepoint_android_vh_mem_cgroup_free'
  [A] 'tracepoint __tracepoint_android_vh_mem_cgroup_id_remove'
  [A] 'tracepoint __tracepoint_android_vh_mmap_region'
  [A] 'tracepoint __tracepoint_android_vh_scmi_timeout_sync'
  [A] 'tracepoint __tracepoint_android_vh_shrink_slab_bypass'
  [A] 'tracepoint __tracepoint_android_vh_snd_soc_card_get_comp_chain'
  [A] 'tracepoint __tracepoint_android_vh_try_to_unmap_one'
  [A] 'tracepoint __tracepoint_sched_stat_sleep'
  [A] 'tracepoint __tracepoint_sched_waking'
  [A] 'blkcg blkcg_root'

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ica9d2a84fcd58c6ff9c2b0eb7146a7e9657c167f
This commit is contained in:
Greg Kroah-Hartman
2021-11-04 15:59:26 +01:00
53 changed files with 8037 additions and 6437 deletions

View File

@@ -86,3 +86,4 @@ References
.. _1: https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html
.. _2: https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
.. _3: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html

File diff suppressed because it is too large Load Diff

View File

@@ -6,12 +6,14 @@
# required by fips140.ko
add_random_ready_callback
aead_register_instance
arm64_const_caps_ready
ahash_register_instance
arch_timer_read_counter
bcmp
cancel_work_sync
__cfi_slowpath
complete_all
completion_done
cpu_have_feature
cpu_hwcap_keys
crypto_aead_decrypt
crypto_aead_encrypt
crypto_aead_setauthsize
@@ -19,7 +21,6 @@
crypto_ahash_finup
crypto_ahash_setkey
crypto_alg_list
crypto_alg_mod_lookup
crypto_alg_sem
crypto_alloc_aead
crypto_alloc_base
@@ -28,7 +29,6 @@
crypto_alloc_skcipher
crypto_attr_alg_name
crypto_check_attr_type
crypto_cipher_decrypt_one
crypto_cipher_encrypt_one
crypto_cipher_setkey
crypto_destroy_tfm
@@ -38,17 +38,23 @@
crypto_grab_ahash
crypto_grab_shash
crypto_grab_skcipher
crypto_grab_spawn
crypto_inst_setname
crypto_put_default_null_skcipher
crypto_register_aead
crypto_register_aeads
crypto_register_ahash
crypto_register_ahashes
crypto_register_alg
crypto_register_algs
crypto_register_rng
crypto_register_rngs
crypto_register_shash
crypto_register_shashes
crypto_register_skcipher
crypto_register_skciphers
crypto_register_template
crypto_register_templates
crypto_remove_final
crypto_remove_spawns
crypto_req_done
crypto_rng_reset
@@ -63,8 +69,10 @@
crypto_skcipher_encrypt
crypto_skcipher_setkey
crypto_spawn_tfm2
crypto_spawn_tfm
crypto_unregister_aead
crypto_unregister_alg
crypto_unregister_rng
crypto_unregister_rngs
crypto_unregister_shash
crypto_unregister_shashes
@@ -87,6 +95,7 @@
kmalloc_order_trace
kmem_cache_alloc_trace
kmemdup
ktime_get
__list_add_valid
__list_del_entry_valid
memcpy
@@ -99,6 +108,9 @@
preempt_schedule_notrace
printk
queue_work_on
___ratelimit
_raw_spin_lock
_raw_spin_unlock
refcount_warn_saturate
scatterwalk_ffwd
scatterwalk_map_and_copy
@@ -121,7 +133,6 @@
strlcpy
strlen
strncmp
synchronize_rcu_tasks
system_wq
__traceiter_android_vh_aes_decrypt
__traceiter_android_vh_aes_encrypt
@@ -134,23 +145,29 @@
tracepoint_probe_register
up_write
wait_for_completion
xa_load
xa_store
# needed by fips140.ko but not identified by the tooling
# TODO(b/189327973): [GKI: ABI] Build of fips140.ko module fails to identify some symbols
__crypto_memneq
__crypto_xor
# preserved by --additions-only
aes_decrypt
aes_encrypt
aes_expandkey
arm64_const_caps_ready
ce_aes_expandkey
cpu_hwcap_keys
crypto_aes_inv_sbox
crypto_aes_sbox
crypto_aes_set_key
crypto_alg_mod_lookup
crypto_cipher_decrypt_one
crypto_ft_tab
crypto_inc
crypto_it_tab
__crypto_memneq
crypto_remove_final
crypto_sha1_finup
crypto_sha1_update
__crypto_xor
gf128mul_lle
sha1_transform
sha224_final
@@ -158,3 +175,4 @@
sha256_block_data_order
sha256_final
sha256_update
synchronize_rcu_tasks

File diff suppressed because it is too large Load Diff

View File

@@ -133,6 +133,7 @@
devm_extcon_dev_allocate
devm_extcon_dev_register
devm_free_irq
devm_get_clk_from_child
devm_gpiochip_add_data_with_key
devm_gpiod_get
devm_gpiod_get_index
@@ -148,7 +149,6 @@
devm_phy_create
devm_phy_get
devm_pinctrl_get
devm_pinctrl_put
devm_platform_ioremap_resource
__devm_regmap_init
__devm_regmap_init_i2c
@@ -307,6 +307,7 @@
drm_mode_duplicate
drm_mode_equal
drm_mode_find_dmt
drm_mode_is_420_also
drm_mode_is_420_only
drm_mode_probed_add
drm_mode_set_name
@@ -337,7 +338,6 @@
eth_validate_addr
event_triggers_call
extcon_set_state_sync
filp_close
find_next_bit
finish_wait
flush_work
@@ -433,7 +433,6 @@
kobject_put
kobject_uevent_env
kthread_create_on_node
kthread_should_stop
ktime_get
ktime_get_mono_fast_ns
ktime_get_real_ts64
@@ -500,6 +499,7 @@
netif_device_attach
netif_device_detach
netif_napi_add
netif_receive_skb
netif_rx
netif_rx_ni
netif_tx_stop_all_queues
@@ -652,6 +652,8 @@
regcache_mark_dirty
regcache_sync
__register_chrdev
register_inet6addr_notifier
register_inetaddr_notifier
register_netdev
register_netdevice
register_netdevice_notifier
@@ -818,10 +820,11 @@
trace_raw_output_prep
trace_seq_printf
try_module_get
tty_flip_buffer_push
__udelay
__unregister_chrdev
unregister_chrdev_region
unregister_inet6addr_notifier
unregister_inetaddr_notifier
unregister_netdev
unregister_netdevice_notifier
unregister_netdevice_queue
@@ -877,6 +880,7 @@
v4l2_m2m_job_finish
v4l2_m2m_next_buf
v4l2_m2m_release
v4l2_src_change_event_subscribe
v4l2_subdev_call_wrappers
v4l2_subdev_init
v4l2_subdev_link_validate
@@ -1140,7 +1144,6 @@
drm_atomic_get_new_connector_for_encoder
drm_connector_attach_max_bpc_property
drm_connector_init_with_ddc
drm_mode_is_420_also
drm_scdc_read
drm_scdc_set_high_tmds_clock_ratio
drm_scdc_set_scrambling
@@ -1258,8 +1261,6 @@
__put_page
reset_control_reset
schedule_hrtimeout
set_user_nice
si_meminfo
sync_file_create
sync_file_get_fence
__task_pid_nr_ns
@@ -1268,6 +1269,7 @@
up_write
vm_mmap
vm_munmap
vm_zone_stat
# required by gmsl-max9286.ko
i2c_smbus_read_byte_data
@@ -1402,6 +1404,7 @@
rational_best_approximation
_raw_spin_trylock
sysrq_mask
tty_flip_buffer_push
__tty_insert_flip_char
tty_insert_flip_string_fixed_flag
tty_termios_encode_baud_rate
@@ -1533,13 +1536,10 @@
kvfree
kvmalloc_node
netdev_set_default_ethtool_ops
netif_receive_skb
netif_receive_skb_list
prandom_bytes
___pskb_trim
rcu_barrier
register_inet6addr_notifier
register_inetaddr_notifier
rhashtable_free_and_destroy
rhashtable_insert_slow
rhltable_init
@@ -1560,14 +1560,10 @@
__skb_gso_segment
skb_queue_head
system_freezable_wq
unregister_inet6addr_notifier
unregister_inetaddr_notifier
unregister_netdevice_many
__usecs_to_jiffies
# required by moal.ko
bitmap_parse
cpumask_next_and
default_wake_function
hex_dump_to_buffer
in4_pton
@@ -1579,6 +1575,7 @@
iw_handler_get_thrspy
iw_handler_set_spy
iw_handler_set_thrspy
kthread_should_stop
ktime_get_raw_ts64
mmc_hw_reset
mmc_set_data_timeout
@@ -1609,7 +1606,7 @@
proc_create_data
proc_mkdir
remove_proc_entry
rps_needed
request_firmware_direct
sdio_claim_host
sdio_claim_irq
sdio_disable_func
@@ -1629,8 +1626,6 @@
sdio_writesb
skb_realloc_headroom
sort
static_key_slow_dec
static_key_slow_inc
strcat
strchr
strim
@@ -1680,7 +1675,6 @@
# required by mxc-jpeg-encdec.ko
v4l2_m2m_dqbuf
v4l2_m2m_qbuf
v4l2_src_change_event_subscribe
# required by mxs-dma.ko
dmaenginem_async_device_register
@@ -1720,6 +1714,9 @@
v4l2_event_subdev_unsubscribe
__v4l2_find_nearest_size
# required by ov5640_camera_mipi_v2.ko
devm_pinctrl_put
# required by panel-raydium-rm67191.ko
devm_backlight_device_register
mipi_dsi_dcs_enter_sleep_mode
@@ -1836,7 +1833,6 @@
backlight_device_register
backlight_device_unregister
devm_pwm_get
gpiod_get_direction
pwm_apply_state
pwm_free
pwm_request
@@ -1995,7 +1991,6 @@
snd_soc_dapm_put_enum_double
# required by snd-soc-simple-card-utils.ko
devm_get_clk_from_child
devm_kvasprintf
of_property_read_string_helper
snd_soc_dapm_get_pin_switch
@@ -2056,6 +2051,8 @@
# required by trusty-ipc.ko
_copy_from_iter
dma_buf_vmap
dma_buf_vunmap
fget
import_iovec
strncpy_from_user
@@ -2117,6 +2114,7 @@
# required by vsiv4l2.ko
devm_device_add_group
v4l2_event_dequeue
vb2_create_bufs
vb2_prepare_buf
# required by vvcam-video.ko

View File

@@ -1940,6 +1940,7 @@
__traceiter_android_vh_rwsem_wake
__traceiter_android_vh_rwsem_write_finished
__traceiter_android_vh_scheduler_tick
__traceiter_android_vh_scmi_timeout_sync
__traceiter_android_vh_selinux_avc_insert
__traceiter_android_vh_selinux_avc_lookup
__traceiter_android_vh_selinux_avc_node_delete
@@ -1952,6 +1953,7 @@
__traceiter_android_vh_set_module_permit_after_init
__traceiter_android_vh_set_module_permit_before_init
__traceiter_android_vh_set_wake_flags
__traceiter_android_vh_snd_soc_card_get_comp_chain
__traceiter_android_vh_syscall_prctl_finished
__traceiter_android_vh_ufs_send_command
__traceiter_android_vh_ufs_send_tm_command
@@ -2018,6 +2020,7 @@
__tracepoint_android_vh_rwsem_wake
__tracepoint_android_vh_rwsem_write_finished
__tracepoint_android_vh_scheduler_tick
__tracepoint_android_vh_scmi_timeout_sync
__tracepoint_android_vh_selinux_avc_insert
__tracepoint_android_vh_selinux_avc_lookup
__tracepoint_android_vh_selinux_avc_node_delete
@@ -2030,6 +2033,7 @@
__tracepoint_android_vh_set_module_permit_after_init
__tracepoint_android_vh_set_module_permit_before_init
__tracepoint_android_vh_set_wake_flags
__tracepoint_android_vh_snd_soc_card_get_comp_chain
__tracepoint_android_vh_syscall_prctl_finished
__tracepoint_android_vh_ufs_send_command
__tracepoint_android_vh_ufs_send_tm_command

View File

@@ -1173,7 +1173,10 @@
ioremap_cache
iounmap
__iowrite32_copy
ip6_local_out
ip6_route_me_harder
ipi_desc_get
ip_local_out
ip_route_me_harder
iput
ipv6_find_hdr
@@ -1526,6 +1529,7 @@
net_namespace_list
net_ns_type_operations
net_ratelimit
nf_ct_attach
nf_ct_delete
nf_register_net_hooks
nf_unregister_net_hooks
@@ -2254,6 +2258,7 @@
si_swapinfo
sk_alloc
skb_add_rx_frag
__skb_checksum_complete
skb_checksum_help
skb_clone
skb_clone_sk
@@ -2263,6 +2268,7 @@
skb_copy_datagram_iter
skb_copy_expand
skb_dequeue
skb_dump
skb_ensure_writable
skb_free_datagram
__skb_get_hash
@@ -2592,8 +2598,10 @@
__traceiter_android_vh_clear_mask_adjust
__traceiter_android_vh_clear_reserved_fmt_fields
__traceiter_android_vh_commit_creds
__traceiter_android_vh_cpufreq_acct_update_power
__traceiter_android_vh_cpu_idle_enter
__traceiter_android_vh_cpu_idle_exit
__traceiter_android_vh_cpu_up
__traceiter_android_vh_do_send_sig_info
__traceiter_android_vh_em_cpu_energy
__traceiter_android_vh_exclude_reserved_zone
@@ -2617,6 +2625,12 @@
__traceiter_android_vh_jiffies_update
__traceiter_android_vh_kmalloc_slab
__traceiter_android_vh_logbuf
__traceiter_android_vh_mem_cgroup_alloc
__traceiter_android_vh_mem_cgroup_css_offline
__traceiter_android_vh_mem_cgroup_css_online
__traceiter_android_vh_mem_cgroup_free
__traceiter_android_vh_mem_cgroup_id_remove
__traceiter_android_vh_meminfo_proc_show
__traceiter_android_vh_mutex_unlock_slowpath
__traceiter_android_vh_mutex_wait_finish
__traceiter_android_vh_mutex_wait_start
@@ -2625,6 +2639,7 @@
__traceiter_android_vh_printk_hotplug
__traceiter_android_vh_process_killed
__traceiter_android_vh_revert_creds
__traceiter_android_vh_rmqueue
__traceiter_android_vh_rwsem_init
__traceiter_android_vh_rwsem_wake
__traceiter_android_vh_rwsem_wake_finish
@@ -2653,6 +2668,7 @@
__traceiter_android_vh_syscall_prctl_finished
__traceiter_android_vh_timer_calc_index
__traceiter_android_vh_tune_inactive_ratio
__traceiter_android_vh_tune_scan_type
__traceiter_android_vh_tune_swappiness
__traceiter_android_vh_ufs_compl_command
__traceiter_android_vh_ufs_send_command
@@ -2673,9 +2689,11 @@
__traceiter_sched_overutilized_tp
__traceiter_sched_stat_blocked
__traceiter_sched_stat_iowait
__traceiter_sched_stat_sleep
__traceiter_sched_stat_wait
__traceiter_sched_switch
__traceiter_sched_update_nr_running_tp
__traceiter_sched_waking
__traceiter_suspend_resume
__traceiter_task_newtask
__traceiter_task_rename
@@ -2766,8 +2784,10 @@
__tracepoint_android_vh_clear_mask_adjust
__tracepoint_android_vh_clear_reserved_fmt_fields
__tracepoint_android_vh_commit_creds
__tracepoint_android_vh_cpufreq_acct_update_power
__tracepoint_android_vh_cpu_idle_enter
__tracepoint_android_vh_cpu_idle_exit
__tracepoint_android_vh_cpu_up
__tracepoint_android_vh_do_send_sig_info
__tracepoint_android_vh_em_cpu_energy
__tracepoint_android_vh_exclude_reserved_zone
@@ -2791,6 +2811,12 @@
__tracepoint_android_vh_jiffies_update
__tracepoint_android_vh_kmalloc_slab
__tracepoint_android_vh_logbuf
__tracepoint_android_vh_mem_cgroup_alloc
__tracepoint_android_vh_mem_cgroup_css_offline
__tracepoint_android_vh_mem_cgroup_css_online
__tracepoint_android_vh_mem_cgroup_free
__tracepoint_android_vh_mem_cgroup_id_remove
__tracepoint_android_vh_meminfo_proc_show
__tracepoint_android_vh_mutex_unlock_slowpath
__tracepoint_android_vh_mutex_wait_finish
__tracepoint_android_vh_mutex_wait_start
@@ -2799,6 +2825,7 @@
__tracepoint_android_vh_printk_hotplug
__tracepoint_android_vh_process_killed
__tracepoint_android_vh_revert_creds
__tracepoint_android_vh_rmqueue
__tracepoint_android_vh_rwsem_init
__tracepoint_android_vh_rwsem_wake
__tracepoint_android_vh_rwsem_wake_finish
@@ -2827,6 +2854,7 @@
__tracepoint_android_vh_syscall_prctl_finished
__tracepoint_android_vh_timer_calc_index
__tracepoint_android_vh_tune_inactive_ratio
__tracepoint_android_vh_tune_scan_type
__tracepoint_android_vh_tune_swappiness
__tracepoint_android_vh_ufs_compl_command
__tracepoint_android_vh_ufs_send_command
@@ -2850,9 +2878,11 @@
__tracepoint_sched_overutilized_tp
__tracepoint_sched_stat_blocked
__tracepoint_sched_stat_iowait
__tracepoint_sched_stat_sleep
__tracepoint_sched_stat_wait
__tracepoint_sched_switch
__tracepoint_sched_update_nr_running_tp
__tracepoint_sched_waking
tracepoint_srcu
__tracepoint_suspend_resume
__tracepoint_task_newtask

View File

@@ -56,7 +56,11 @@
__clk_get_name
clk_get_parent
clk_get_rate
clk_hw_get_flags
clk_hw_get_name
clk_hw_get_parent
clk_hw_get_rate
__clk_mux_determine_rate
clk_notifier_register
clk_notifier_unregister
clk_prepare
@@ -109,6 +113,7 @@
del_gendisk
del_timer
del_timer_sync
desc_to_gpio
destroy_workqueue
dev_driver_string
_dev_err
@@ -140,9 +145,10 @@
devm_devfreq_register_opp_notifier
devm_extcon_dev_allocate
devm_extcon_dev_register
devm_extcon_register_notifier
devm_free_irq
devm_fwnode_gpiod_get_index
devm_get_clk_from_child
devm_gpiochip_add_data_with_key
devm_gpiod_get
devm_gpiod_get_index
devm_gpiod_get_index_optional
@@ -156,18 +162,21 @@
devm_kmemdup
devm_kstrdup
devm_led_classdev_register_ext
devm_mfd_add_devices
devm_nvmem_register
devm_of_clk_add_hw_provider
__devm_of_phy_provider_register
devm_phy_create
devm_phy_get
devm_pinctrl_get
devm_pinctrl_register
devm_platform_get_and_ioremap_resource
devm_platform_ioremap_resource
devm_platform_ioremap_resource_byname
devm_power_supply_register
devm_pwm_get
devm_regmap_field_alloc
__devm_regmap_init
__devm_regmap_init_i2c
__devm_regmap_init_mmio_clk
devm_regulator_bulk_get
@@ -294,7 +303,6 @@
dummy_irq_chip
enable_irq
extcon_get_edev_by_phandle
extcon_get_property
extcon_get_state
extcon_register_notifier
extcon_set_state_sync
@@ -308,6 +316,7 @@
flush_workqueue
fpsimd_context_busy
frame_vector_to_pages
free_irq
__free_pages
free_pages
fwnode_handle_put
@@ -340,6 +349,7 @@
gpiod_set_value_cansleep
gpiod_to_irq
gpio_to_desc
handle_nested_irq
handle_simple_irq
hid_debug
hid_hw_close
@@ -358,6 +368,7 @@
i2c_get_adapter
i2c_put_adapter
i2c_register_driver
i2c_smbus_read_byte_data
__i2c_smbus_xfer
i2c_smbus_xfer
i2c_transfer
@@ -383,11 +394,14 @@
iommu_get_domain_for_dev
__ioremap
iounmap
irq_create_mapping_affinity
__irq_domain_add
irq_domain_remove
irq_find_mapping
irq_get_irq_data
irq_modify_status
irq_set_chained_handler_and_data
irq_set_chip
irq_set_chip_and_handler_name
irq_set_chip_data
irq_set_irq_type
@@ -449,7 +463,9 @@
memdup_user
memset
memstart_addr
mfd_remove_devices
mmc_of_parse
mod_delayed_work_on
mod_timer
module_layout
module_put
@@ -471,6 +487,7 @@
of_clk_del_provider
of_clk_get
of_clk_get_by_name
of_clk_src_onecell_get
of_clk_src_simple_get
of_count_phandle_with_args
of_devfreq_cooling_register_power
@@ -522,11 +539,15 @@
phy_power_off
phy_power_on
phy_set_mode_ext
pinconf_generic_dt_node_to_map
pinctrl_dev_get_drvdata
pinctrl_gpio_direction_input
pinctrl_gpio_direction_output
pinctrl_lookup_state
pinctrl_pm_select_default_state
pinctrl_pm_select_sleep_state
pinctrl_select_state
pinctrl_utils_free_map
platform_bus_type
platform_device_put
platform_device_register_full
@@ -593,7 +614,9 @@
regmap_bulk_write
regmap_field_read
regmap_field_update_bits_base
regmap_irq_get_domain
regmap_irq_get_virq
regmap_raw_write
regmap_read
regmap_update_bits_base
regmap_write
@@ -616,6 +639,7 @@
regulator_set_voltage_time_sel
remap_pfn_range
remove_proc_entry
request_threaded_irq
reset_control_assert
reset_control_deassert
revalidate_disk_size
@@ -624,6 +648,7 @@
rtc_tm_to_time64
rtc_valid_tm
scatterwalk_map_and_copy
sched_clock
schedule
schedule_timeout
scnprintf
@@ -676,6 +701,8 @@
snd_soc_put_enum_double
snd_soc_put_volsw
snprintf
__spi_register_driver
spi_sync
sprintf
sscanf
__stack_chk_fail
@@ -694,6 +721,7 @@
sysfs_create_file_ns
sysfs_create_group
sysfs_create_link
__sysfs_match_string
sysfs_remove_group
sysfs_remove_link
system_unbound_wq
@@ -714,6 +742,7 @@
update_devfreq
up_read
up_write
usb_debug_root
usleep_range
uuid_null
v4l2_async_notifier_cleanup
@@ -826,7 +855,6 @@
drm_dp_dpcd_write
drm_dp_start_crc
drm_dp_stop_crc
irq_modify_status
# required by ch.ko
param_array_ops
@@ -839,6 +867,15 @@
of_clk_add_hw_provider
of_clk_hw_simple_get
# required by clk-rk628.ko
devm_reset_controller_register
# required by clk-rockchip-regmap.ko
clk_hw_get_num_parents
clk_hw_get_parent_by_index
divider_recalc_rate
divider_round_rate_parent
# required by clk-rockchip.ko
clk_divider_ops
clk_divider_ro_ops
@@ -846,12 +883,8 @@
clk_fractional_divider_ops
clk_gate_ops
__clk_get_hw
clk_hw_get_flags
clk_hw_get_parent
clk_hw_get_rate
clk_hw_register_composite
clk_hw_round_rate
__clk_mux_determine_rate
clk_mux_ops
clk_mux_ro_ops
clk_register_composite
@@ -861,7 +894,6 @@
clk_register_mux_table
divider_get_val
match_string
of_clk_src_onecell_get
register_restart_handler
reset_controller_register
__udelay
@@ -922,7 +954,6 @@
power_supply_get_battery_info
power_supply_put_battery_info
regmap_raw_read
regmap_raw_write
# required by dw-hdmi-cec.ko
cec_allocate_adapter
@@ -968,7 +999,6 @@
extcon_set_property_capability
hdmi_drm_infoframe_pack
hdmi_vendor_infoframe_pack
mod_delayed_work_on
of_get_i2c_adapter_by_node
# required by dw-mipi-dsi.ko
@@ -1031,7 +1061,6 @@
usb_add_hcd
usb_calc_bus_time
usb_create_hcd
usb_debug_root
usb_del_gadget_udc
usb_disabled
usb_ep_set_maxpacket_limit
@@ -1060,6 +1089,23 @@
# required by fan53555.ko
gpiod_set_raw_value
# required by fusb302.ko
device_get_named_child_node
disable_irq_nosync
extcon_get_extcon_dev
fwnode_create_software_node
i2c_smbus_read_i2c_block_data
i2c_smbus_write_byte_data
i2c_smbus_write_i2c_block_data
tcpm_cc_change
tcpm_pd_hard_reset
tcpm_pd_receive
tcpm_pd_transmit_complete
tcpm_register_port
tcpm_unregister_port
tcpm_vbus_change
vsnprintf
# required by ghash-ce.ko
aes_expandkey
gf128mul_lle
@@ -1073,7 +1119,6 @@
handle_edge_irq
handle_level_irq
__irq_alloc_domain_generic_chips
irq_create_mapping_affinity
irq_gc_ack_set_bit
irq_gc_mask_clr_bit
irq_gc_mask_set_bit
@@ -1114,19 +1159,16 @@
i2c_verify_client
# required by i2c-gpio.ko
desc_to_gpio
i2c_bit_add_numbered_bus
# required by i2c-hid.ko
dev_printk
free_irq
hid_add_device
hid_allocate_device
hid_destroy_device
hid_input_report
hid_parse_report
i2c_smbus_read_byte
request_threaded_irq
# required by i2c-mux.ko
i2c_add_numbered_adapter
@@ -1381,6 +1423,7 @@
nvmem_cell_get
# required by phy-rockchip-inno-usb2.ko
devm_extcon_register_notifier
extcon_set_state
extcon_sync
wakeup_source_remove
@@ -1389,16 +1432,24 @@
strcasecmp
usb_add_phy
# required by phy-rockchip-typec.ko
extcon_get_property
# required by phy-rockchip-usb.ko
__of_reset_control_get
# required by pinctrl-rk805.ko
devm_gpiochip_add_data_with_key
devm_pinctrl_register
pinconf_generic_dt_node_to_map
pinctrl_gpio_direction_input
pinctrl_gpio_direction_output
pinctrl_utils_free_map
# required by pinctrl-rk628.ko
irq_domain_xlate_twocell
pinctrl_add_gpio_range
pinctrl_find_gpio_range_from_pin
# required by pinctrl-rockchip.ko
of_find_node_by_phandle
of_platform_populate
pinconf_generic_parse_dt_config
pinctrl_force_default
pinctrl_force_sleep
pin_get_name
# required by pl330.ko
amba_driver_register
@@ -1448,22 +1499,35 @@
devres_release
kernel_kobj
# required by rk628.ko
irq_dispose_mapping
irq_domain_xlate_onetwocell
irq_set_parent
mfd_add_devices
# required by rk805-pwrkey.ko
devm_request_any_context_irq
input_set_capability
# required by rk806-core.ko
devm_regmap_add_irq_chip
# required by rk806-spi.ko
spi_write_then_read
# required by rk808-regulator.ko
gpiod_is_active_low
# required by rk808.ko
devm_mfd_add_devices
i2c_smbus_read_byte_data
kobject_create_and_add
platform_device_add
platform_device_alloc
pm_power_off_prepare
register_syscore_ops
regmap_add_irq_chip
regmap_del_irq_chip
regmap_irq_get_domain
system_state
unregister_syscore_ops
# required by rk818_battery.ko
blocking_notifier_call_chain
@@ -1571,9 +1635,6 @@
iio_push_to_buffers
iio_trigger_notify_done
# required by rockchip_sip.ko
sched_clock
# required by rockchip_thermal.ko
devm_thermal_zone_of_sensor_register
thermal_zone_device_disable
@@ -1719,6 +1780,7 @@
drm_property_create_range
drm_property_destroy
__drm_puts_seq_file
drm_rect_calc_hscale
drm_send_event_locked
drm_simple_encoder_init
drm_universal_plane_init
@@ -1822,7 +1884,6 @@
of_property_read_variable_u8_array
# required by snd-soc-cx2072x.ko
__devm_regmap_init
regmap_multi_reg_write
snd_soc_params_to_frame_size
@@ -1840,8 +1901,13 @@
snd_pcm_hw_constraint_eld
snd_soc_dapm_add_routes
# required by snd-soc-rk817.ko
snd_soc_add_component_controls
snd_soc_component_exit_regmap
snd_soc_component_init_regmap
snd_soc_unregister_component
# required by snd-soc-simple-card-utils.ko
devm_get_clk_from_child
devm_kasprintf
devm_kvasprintf
snd_soc_card_jack_new
@@ -1874,9 +1940,7 @@
spi_finalize_current_transfer
# required by spidev.ko
__spi_register_driver
spi_setup
spi_sync
stream_open
# required by system_heap.ko
@@ -1889,6 +1953,12 @@
__sg_page_iter_next
__sg_page_iter_start
# required by tcpci_husb311.ko
i2c_smbus_read_word_data
tcpci_irq
tcpci_register_port
tcpci_unregister_port
# required by tee.ko
bus_register
bus_unregister
@@ -1913,6 +1983,19 @@
# required by tps65132-regulator.ko
regulator_set_active_discharge_regmap
# required by typec_displayport.ko
fwnode_find_reference
sysfs_notify
typec_altmode2port
typec_altmode_enter
typec_altmode_exit
typec_altmode_get_partner
typec_altmode_notify
__typec_altmode_register_driver
typec_altmode_unregister_driver
typec_altmode_vdm
typec_get_negotiated_svdm_version
# required by v4l2-fwnode.ko
fwnode_device_is_available
fwnode_get_name
@@ -1970,7 +2053,6 @@
page_endio
register_blkdev
strcpy
__sysfs_match_string
sysfs_streq
unregister_blkdev
vzalloc

View File

@@ -693,9 +693,7 @@
led_set_brightness_nosleep
led_trigger_event
led_trigger_register
led_trigger_register_simple
led_trigger_unregister
led_trigger_unregister_simple
# required by lzo-rle.ko
lzorle1x_1_compress
@@ -1349,6 +1347,7 @@
# required by virtio_pci.ko
irq_set_affinity_hint
pci_alloc_irq_vectors_affinity
pci_device_is_present
pci_disable_sriov
pci_enable_sriov
pci_find_capability
@@ -1383,8 +1382,6 @@
wait_for_completion_interruptible_timeout
# required by vmw_vsock_virtio_transport.ko
lock_sock_nested
release_sock
virtio_transport_connect
virtio_transport_deliver_tap_pkt
virtio_transport_destruct

View File

@@ -1713,6 +1713,8 @@
__traceiter_android_vh_binder_wakeup_ilocked
__traceiter_android_vh_cpu_idle_enter
__traceiter_android_vh_cpu_idle_exit
__traceiter_android_vh_filemap_fault_cache_page
__traceiter_android_vh_filemap_fault_get_page
__traceiter_android_vh_ftrace_dump_buffer
__traceiter_android_vh_ftrace_format_check
__traceiter_android_vh_ftrace_oops_enter
@@ -1721,6 +1723,7 @@
__traceiter_android_vh_iommu_setup_dma_ops
__traceiter_android_vh_ipi_stop
__traceiter_android_vh_jiffies_update
__traceiter_android_vh_mmap_region
__traceiter_android_vh_mmc_attach_sd
__traceiter_android_vh_mmc_blk_mq_rw_recovery
__traceiter_android_vh_mmc_blk_reset
@@ -1732,7 +1735,9 @@
__traceiter_android_vh_show_max_freq
__traceiter_android_vh_show_resume_epoch_val
__traceiter_android_vh_show_suspend_epoch_val
__traceiter_android_vh_shrink_slab_bypass
__traceiter_android_vh_timer_calc_index
__traceiter_android_vh_try_to_unmap_one
__traceiter_android_vh_ufs_check_int_errors
__traceiter_android_vh_ufs_compl_command
__traceiter_android_vh_ufs_send_command
@@ -1782,10 +1787,15 @@
__tracepoint_android_rvh_set_readahead_gfp_mask
__tracepoint_android_rvh_set_skip_swapcache_flags
__tracepoint_android_rvh_set_task_cpu
__tracepoint_android_rvh_tcp_recvmsg
__tracepoint_android_rvh_tcp_recvmsg_stat
__tracepoint_android_rvh_tcp_sendmsg_locked
__tracepoint_android_rvh_tick_entry
__tracepoint_android_rvh_try_to_wake_up
__tracepoint_android_rvh_try_to_wake_up_success
__tracepoint_android_rvh_ttwu_cond
__tracepoint_android_rvh_udp_recvmsg
__tracepoint_android_rvh_udp_sendmsg
__tracepoint_android_rvh_update_cpu_capacity
__tracepoint_android_rvh_update_cpus_allowed
__tracepoint_android_rvh_update_misfit_status
@@ -1799,6 +1809,8 @@
__tracepoint_android_vh_cpu_idle_enter
__tracepoint_android_vh_cpu_idle_exit
__tracepoint_android_vh_dup_task_struct
__tracepoint_android_vh_filemap_fault_cache_page
__tracepoint_android_vh_filemap_fault_get_page
__tracepoint_android_vh_ftrace_dump_buffer
__tracepoint_android_vh_ftrace_format_check
__tracepoint_android_vh_ftrace_oops_enter
@@ -1808,6 +1820,7 @@
__tracepoint_android_vh_ipi_stop
__tracepoint_android_vh_irqtime_account_process_tick
__tracepoint_android_vh_jiffies_update
__tracepoint_android_vh_mmap_region
__tracepoint_android_vh_mmc_attach_sd
__tracepoint_android_vh_mmc_blk_mq_rw_recovery
__tracepoint_android_vh_mmc_blk_reset
@@ -1819,7 +1832,9 @@
__tracepoint_android_vh_show_max_freq
__tracepoint_android_vh_show_resume_epoch_val
__tracepoint_android_vh_show_suspend_epoch_val
__tracepoint_android_vh_shrink_slab_bypass
__tracepoint_android_vh_timer_calc_index
__tracepoint_android_vh_try_to_unmap_one
__tracepoint_android_vh_tune_scan_type
__tracepoint_android_vh_tune_swappiness
__tracepoint_android_vh_ufs_check_int_errors

View File

@@ -3,8 +3,11 @@
#
# This file is included by the generic Kbuild makefile to permit the
# architecture to perform postlink actions on vmlinux and any .ko module file.
# In this case, we only need it for fips140.ko, which needs a HMAC digest to be
# injected into it. All other targets are NOPs.
# In this case, we only need it for fips140.ko, which needs some postprocessing
# for the integrity check mandated by FIPS. This involves making copies of the
# relocation sections so that the module will have access to them at
# initialization time, and calculating and injecting a HMAC digest into the
# module. All other targets are NOPs.
#
PHONY := __archpost
@@ -15,7 +18,14 @@ include scripts/Kbuild.include
CMD_FIPS140_GEN_HMAC = crypto/fips140_gen_hmac
quiet_cmd_gen_hmac = HMAC $@
cmd_gen_hmac = $(CMD_FIPS140_GEN_HMAC) $@
cmd_gen_hmac = $(OBJCOPY) $@ \
--dump-section=$(shell $(READELF) -SW $@|grep -Eo '\.rela\.text\S*')=$@.rela.text \
--dump-section=$(shell $(READELF) -SW $@|grep -Eo '\.rela\.rodata\S*')=$@.rela.rodata \
--add-section=.init.rela.text=$@.rela.text \
--add-section=.init.rela.rodata=$@.rela.rodata \
--set-section-flags=.init.rela.text=alloc,readonly \
--set-section-flags=.init.rela.rodata=alloc,readonly && \
$(CMD_FIPS140_GEN_HMAC) $@
# `@true` prevents complaints when there is nothing to be done
@@ -29,7 +39,7 @@ $(objtree)/crypto/fips140.ko: FORCE
@true
clean:
@true
rm -f $(objtree)/crypto/fips140.ko.rela.*
PHONY += FORCE clean

View File

@@ -495,6 +495,7 @@ CONFIG_USB_CONFIGFS_F_AUDIO_SRC=y
CONFIG_USB_CONFIGFS_F_UAC2=y
CONFIG_USB_CONFIGFS_F_MIDI=y
CONFIG_USB_CONFIGFS_F_HID=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_TYPEC=y
CONFIG_TYPEC_TCPM=y
CONFIG_TYPEC_TCPCI=y
@@ -667,7 +668,10 @@ CONFIG_MAGIC_SYSRQ=y
CONFIG_UBSAN=y
CONFIG_UBSAN_TRAP=y
CONFIG_UBSAN_LOCAL_BOUNDS=y
# CONFIG_UBSAN_MISC is not set
# CONFIG_UBSAN_SHIFT is not set
# CONFIG_UBSAN_OBJECT_SIZE is not set
# CONFIG_UBSAN_BOOL is not set
# CONFIG_UBSAN_ENUM is not set
CONFIG_PAGE_OWNER=y
CONFIG_PAGE_PINNER=y
CONFIG_DEBUG_MEMORY_INIT=y

View File

@@ -0,0 +1,237 @@
CONFIG_ARCH_ROCKCHIP=y
CONFIG_ARM_ROCKCHIP_BUS_DEVFREQ=m
CONFIG_ARM_ROCKCHIP_CPUFREQ=m
# CONFIG_ATA_SFF is not set
CONFIG_BACKLIGHT_PWM=m
CONFIG_BATTERY_CW2015=m
CONFIG_BATTERY_RK817=m
CONFIG_BATTERY_RK818=m
CONFIG_BLK_DEV_NVME=m
CONFIG_BMA2XX_ACC=m
CONFIG_CHARGER_BQ25700=m
CONFIG_CHARGER_RK817=m
CONFIG_CHARGER_RK818=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=m
# CONFIG_CLK_RK1808 is not set
# CONFIG_CLK_RK3308 is not set
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_RK808=m
CONFIG_COMMON_CLK_ROCKCHIP=m
CONFIG_COMMON_CLK_SCMI=m
CONFIG_COMPASS_AK8963=m
CONFIG_COMPASS_AK8975=m
CONFIG_COMPASS_DEVICE=m
CONFIG_CPUFREQ_DT=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_PX30=y
CONFIG_CPU_RK3328=y
CONFIG_CPU_RK3368=y
CONFIG_CPU_RK3399=y
CONFIG_CPU_RK3568=y
CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
CONFIG_CRYPTO_GHASH_ARM64_CE=m
CONFIG_CRYPTO_SHA1_ARM64_CE=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_DEVFREQ_EVENT_ROCKCHIP_NOCP=m
CONFIG_DMABUF_HEAPS_CMA=m
CONFIG_DMABUF_HEAPS_SYSTEM=m
CONFIG_DRAGONRISE_FF=y
CONFIG_DRM_DW_HDMI_CEC=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_ROCKCHIP=m
CONFIG_DRM_SII902X=m
CONFIG_DTC_SYMBOLS=y
# CONFIG_DWMAC_GENERIC is not set
CONFIG_DW_WATCHDOG=m
CONFIG_GPIO_ROCKCHIP=m
CONFIG_GREENASIA_FF=y
CONFIG_GSENSOR_DEVICE=m
CONFIG_GS_DA223=m
CONFIG_GS_KXTJ9=m
CONFIG_GS_LIS3DH=m
CONFIG_GS_LSM303D=m
CONFIG_GS_MC3230=m
CONFIG_GS_MMA7660=m
CONFIG_GS_MMA8452=m
CONFIG_GS_MXC6655XA=m
CONFIG_GS_SC7660=m
CONFIG_GS_SC7A20=m
CONFIG_GS_SC7A30=m
CONFIG_GYROSCOPE_DEVICE=m
CONFIG_GYRO_EWTSA=m
CONFIG_GYRO_L3G20D=m
CONFIG_GYRO_L3G4200D=m
CONFIG_GYRO_LSM330=m
CONFIG_GYRO_MPU6500=m
CONFIG_GYRO_MPU6880=m
CONFIG_HALL_DEVICE=m
CONFIG_HID_A4TECH=m
CONFIG_HID_ACRUX=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ALPS=m
CONFIG_HID_APPLEIR=m
CONFIG_HID_AUREAL=m
CONFIG_HID_BELKIN=m
CONFIG_HID_CHERRY=m
CONFIG_HID_CHICONY=m
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_EMS_FF=m
CONFIG_HID_EZKEY=m
CONFIG_HID_GREENASIA=m
CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LENOVO=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_NTRIG=m
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
CONFIG_HID_PETALYNX=m
CONFIG_HID_PRIMAX=m
CONFIG_HID_SAITEK=m
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SPEEDLINK=m
CONFIG_HID_STEELSERIES=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_THINGM=m
CONFIG_HID_THRUSTMASTER=m
CONFIG_HID_TIVO=m
CONFIG_HID_TOPSEED=m
CONFIG_HID_TWINHAN=m
CONFIG_HID_WALTOP=m
CONFIG_HID_ZEROPLUS=m
CONFIG_HID_ZYDACRON=m
CONFIG_HS_MH248=m
CONFIG_HW_RANDOM_ROCKCHIP=m
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_HID=m
CONFIG_I2C_RK3X=m
CONFIG_IIO_BUFFER_CB=m
CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_ION=y
CONFIG_ION_SYSTEM_HEAP=y
CONFIG_JOLIET=y
CONFIG_KEYBOARD_ADC=m
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LIGHT_DEVICE=m
CONFIG_LSM330_ACC=m
CONFIG_LS_CM3217=m
CONFIG_LS_CM3218=m
CONFIG_LS_STK3410=m
# CONFIG_MALI400_PROFILING is not set
CONFIG_MFD_RK808=m
CONFIG_MMC_DW=m
CONFIG_MMC_DW_ROCKCHIP=m
CONFIG_MMC_SDHCI_OF_ARASAN=m
CONFIG_MMC_SDHCI_OF_DWCMSHC=m
CONFIG_MPU6500_ACC=m
CONFIG_MPU6880_ACC=m
CONFIG_OPTEE=m
CONFIG_PANTHERLORD_FF=y
CONFIG_PHY_ROCKCHIP_DP=m
CONFIG_PHY_ROCKCHIP_EMMC=m
CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=m
CONFIG_PHY_ROCKCHIP_INNO_USB2=m
CONFIG_PHY_ROCKCHIP_INNO_USB3=m
CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=m
CONFIG_PHY_ROCKCHIP_NANENG_EDP=m
CONFIG_PHY_ROCKCHIP_PCIE=m
CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=m
CONFIG_PHY_ROCKCHIP_TYPEC=m
CONFIG_PHY_ROCKCHIP_USB=m
CONFIG_PINCTRL_RK805=m
CONFIG_PINCTRL_ROCKCHIP=m
CONFIG_PL330_DMA=m
CONFIG_PROXIMITY_DEVICE=m
CONFIG_PS_STK3410=m
CONFIG_PWM_ROCKCHIP=m
CONFIG_REGULATOR_ACT8865=m
CONFIG_REGULATOR_FAN53555=m
CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_LP8752=m
CONFIG_REGULATOR_MP8865=m
CONFIG_REGULATOR_PWM=m
CONFIG_REGULATOR_RK808=m
CONFIG_REGULATOR_TPS65132=m
CONFIG_REGULATOR_XZ3216=m
CONFIG_RK_CONSOLE_THREAD=y
CONFIG_RK_NAND=m
CONFIG_ROCKCHIP_ANALOGIX_DP=y
CONFIG_ROCKCHIP_CDN_DP=y
CONFIG_ROCKCHIP_CPUINFO=m
CONFIG_ROCKCHIP_DEBUG=m
CONFIG_ROCKCHIP_DW_HDMI=y
CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_ROCKCHIP_EFUSE=m
CONFIG_ROCKCHIP_FIQ_DEBUGGER=m
CONFIG_ROCKCHIP_GRF=m
CONFIG_ROCKCHIP_INNO_HDMI=y
CONFIG_ROCKCHIP_IODOMAIN=m
CONFIG_ROCKCHIP_IOMMU=m
CONFIG_ROCKCHIP_IPA=m
CONFIG_ROCKCHIP_LVDS=y
CONFIG_ROCKCHIP_OPP=m
CONFIG_ROCKCHIP_OTP=m
CONFIG_ROCKCHIP_PHY=m
CONFIG_ROCKCHIP_PM_DOMAINS=m
CONFIG_ROCKCHIP_PVTM=m
CONFIG_ROCKCHIP_REMOTECTL=m
CONFIG_ROCKCHIP_REMOTECTL_PWM=m
CONFIG_ROCKCHIP_RGB=y
CONFIG_ROCKCHIP_SARADC=m
CONFIG_ROCKCHIP_SIP=m
CONFIG_ROCKCHIP_SYSTEM_MONITOR=m
CONFIG_ROCKCHIP_THERMAL=m
CONFIG_ROCKCHIP_VENDOR_STORAGE=m
CONFIG_ROCKCHIP_VENDOR_STORAGE_UPDATE_LOADER=y
CONFIG_RTC_DRV_RK808=m
CONFIG_SENSOR_DEVICE=m
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_SOC_BT_SCO=m
CONFIG_SND_SOC_CX2072X=m
CONFIG_SND_SOC_DUMMY_CODEC=m
CONFIG_SND_SOC_ES7202=m
CONFIG_SND_SOC_ES7210=m
CONFIG_SND_SOC_ES7243E=m
CONFIG_SND_SOC_ES8311=m
CONFIG_SND_SOC_ES8316=m
CONFIG_SND_SOC_ES8396=m
CONFIG_SND_SOC_RK3328=m
CONFIG_SND_SOC_RK817=m
CONFIG_SND_SOC_RK_CODEC_DIGITAL=m
CONFIG_SND_SOC_ROCKCHIP=m
CONFIG_SND_SOC_ROCKCHIP_PDM=m
CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
CONFIG_SND_SOC_RT5640=m
CONFIG_SND_SOC_SPDIF=m
CONFIG_SPI_ROCKCHIP=m
CONFIG_SPI_SPIDEV=m
CONFIG_SW_SYNC=m
CONFIG_SYSCON_REBOOT_MODE=m
CONFIG_TEE=m
CONFIG_TEST_POWER=m
CONFIG_TOUCHSCREEN_GSLX680_PAD=m
CONFIG_TOUCHSCREEN_GT1X=m
CONFIG_TYPEC_DP_ALTMODE=m
CONFIG_TYPEC_FUSB302=m
CONFIG_VIDEO_DW9714=m
CONFIG_VIDEO_OV2680=m
CONFIG_VIDEO_OV5695=m
CONFIG_ZISOFS=y
CONFIG_ZRAM=m
CONFIG_ZSMALLOC=m
# CONFIG_USB_DUMMY_HCD is not set

View File

@@ -45,7 +45,6 @@
#include <linux/thread_info.h>
#include <linux/prctl.h>
#include <trace/hooks/fpsimd.h>
#include <trace/hooks/mpam.h>
#include <asm/alternative.h>
#include <asm/arch_gicv3.h>
@@ -572,11 +571,6 @@ __notrace_funcgraph struct task_struct *__switch_to(struct task_struct *prev,
ssbs_thread_switch(next);
erratum_1418040_thread_switch(prev, next);
ptrauth_thread_switch_user(next);
/*
* vendor hook is needed before the dsb(),
* because MPAM is related to cache maintenance.
*/
trace_android_vh_mpam_set(prev, next);
/*
* Complete any pending TLB or cache maintenance on this CPU in case

View File

@@ -311,6 +311,10 @@ SECTIONS
#else
.data : AT(ADDR(.data) - LOAD_OFFSET) {
DATA_DATA
#ifdef CONFIG_UBSAN
*(.data..Lubsan_data*)
*(.data..Lubsan_type*)
#endif
*(.data.rel*)
*(.toc1)
*(.branch_lt)

View File

@@ -446,6 +446,7 @@ CONFIG_USB_CONFIGFS_F_ACC=y
CONFIG_USB_CONFIGFS_F_AUDIO_SRC=y
CONFIG_USB_CONFIGFS_F_MIDI=y
CONFIG_USB_CONFIGFS_F_HID=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_TYPEC=y
CONFIG_TYPEC_TCPM=y
CONFIG_TYPEC_TCPCI=y
@@ -601,7 +602,10 @@ CONFIG_MAGIC_SYSRQ=y
CONFIG_UBSAN=y
CONFIG_UBSAN_TRAP=y
CONFIG_UBSAN_LOCAL_BOUNDS=y
# CONFIG_UBSAN_MISC is not set
# CONFIG_UBSAN_SHIFT is not set
# CONFIG_UBSAN_OBJECT_SIZE is not set
# CONFIG_UBSAN_BOOL is not set
# CONFIG_UBSAN_ENUM is not set
CONFIG_PAGE_OWNER=y
CONFIG_PAGE_PINNER=y
CONFIG_DEBUG_MEMORY_INIT=y

View File

@@ -15,3 +15,4 @@ DEFCONFIG=fips140_gki_defconfig
KMI_SYMBOL_LIST=android/abi_gki_aarch64_fips140
PRE_DEFCONFIG_CMDS="cat ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/fips140_gki.fragment > ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG};"
POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}"
KMI_SYMBOL_LIST_ADD_ONLY=1

8
build.config.rockchip Normal file
View File

@@ -0,0 +1,8 @@
. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki.aarch64
DEFCONFIG=rockchip_aarch64_gki_defconfig
KMI_SYMBOL_LIST=android/abi_gki_aarch64_rockchip
PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/common/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/common/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/common/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/common/arch/arm64/configs/rockchip_gki.config"
POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/common/arch/arm64/configs/${DEFCONFIG}"

View File

@@ -200,14 +200,19 @@ obj-$(CONFIG_CRYPTO_SIMD) += crypto_simd.o
ifneq ($(CONFIG_CRYPTO_FIPS140_MOD),)
FIPS140_CFLAGS := -D__DISABLE_EXPORTS -DBUILD_FIPS140_KO
FIPS140_CFLAGS := -D__DISABLE_EXPORTS -DBUILD_FIPS140_KO -include fips140-defs.h
CFLAGS_jitterentropy-fips.o := -O0
KASAN_SANITIZE_jitterentropy-fips.o = n
UBSAN_SANITIZE_jitterentropy-fips.o = n
#
# Create a separate FIPS archive containing a duplicate of each builtin generic
# module that is in scope for FIPS 140-2 certification
#
crypto-fips-objs := drbg.o ecb.o cbc.o ctr.o gcm.o xts.o hmac.o memneq.o \
gf128mul.o aes_generic.o lib-crypto-aes.o \
crypto-fips-objs := drbg.o ecb.o cbc.o ctr.o cts.o gcm.o xts.o hmac.o cmac.o \
memneq.o gf128mul.o aes_generic.o lib-crypto-aes.o \
jitterentropy.o jitterentropy-kcapi.o \
sha1_generic.o sha256_generic.o sha512_generic.o \
lib-sha1.o lib-crypto-sha256.o
crypto-fips-objs := $(foreach o,$(crypto-fips-objs),$(o:.o=-fips.o))
@@ -228,10 +233,17 @@ $(obj)/lib-crypto-%-fips.o: $(srctree)/lib/crypto/%.c FORCE
$(obj)/crypto-fips.a: $(addprefix $(obj)/,$(crypto-fips-objs)) FORCE
$(call if_changed,ar_and_symver)
fips140-objs := fips140-module.o fips140-selftests.o crypto-fips.a
obj-m += fips140.o
fips140-objs := \
fips140-alg-registration.o \
fips140-module.o \
fips140-refs.o \
fips140-selftests.o \
crypto-fips.a
obj-m += fips140.o
CFLAGS_fips140-alg-registration.o += $(FIPS140_CFLAGS)
CFLAGS_fips140-module.o += $(FIPS140_CFLAGS)
CFLAGS_fips140-selftests.o += $(FIPS140_CFLAGS)
hostprogs-always-y := fips140_gen_hmac
HOSTLDLIBS_fips140_gen_hmac := -lcrypto -lelf

View File

@@ -0,0 +1,388 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Block crypto operations until tests complete
*
* Copyright 2021 Google LLC
*
* This file defines the fips140_crypto_register_*() functions, to which all
* calls to crypto_register_*() in the module are redirected. These functions
* override the tfm initialization function of each algorithm to insert a wait
* for the module having completed its self-tests and integrity check.
*
* The exact field that we override depends on the algorithm type. For
* algorithm types that have a strongly-typed initialization function pointer
* (e.g. skcipher), we must override that, since cra_init isn't guaranteed to be
* called for those despite the field being present in the base struct. For the
* other algorithm types (e.g. "cipher") we must override cra_init.
*
* All of this applies to both normal algorithms and template instances.
*
* The purpose of all of this is to meet a FIPS requirement where the module
* must not produce any output from cryptographic algorithms until it completes
* its tests. Technically this is impossible, but this solution meets the
* intent of the requirement, assuming the user makes a supported sequence of
* API calls. Note that we can't simply run the tests before registering the
* algorithms, as the algorithms must be registered in order to run the tests.
*
* It would be much easier to handle this in the kernel's crypto API framework.
* Unfortunately, that was deemed insufficient because the module itself is
* required to do the enforcement. What is *actually* required is still very
* vague, but the approach implemented here should meet the requirement.
*/
/*
* This file is the one place in fips140.ko that needs to call the kernel's real
* algorithm registration functions, so #undefine all the macros from
* fips140-defs.h so that the "fips140_" prefix doesn't automatically get added.
*/
#undef aead_register_instance
#undef ahash_register_instance
#undef crypto_register_aead
#undef crypto_register_aeads
#undef crypto_register_ahash
#undef crypto_register_ahashes
#undef crypto_register_alg
#undef crypto_register_algs
#undef crypto_register_rng
#undef crypto_register_rngs
#undef crypto_register_shash
#undef crypto_register_shashes
#undef crypto_register_skcipher
#undef crypto_register_skciphers
#undef shash_register_instance
#undef skcipher_register_instance
#include <crypto/algapi.h>
#include <crypto/internal/aead.h>
#include <crypto/internal/hash.h>
#include <crypto/internal/rng.h>
#include <crypto/internal/skcipher.h>
#include <linux/xarray.h>
#include "fips140-module.h"
/* Indicates whether the self-tests and integrity check have completed */
DECLARE_COMPLETION(fips140_tests_done);
/* The thread running the self-tests and integrity check */
struct task_struct *fips140_init_thread;
/*
* Map from crypto_alg to original initialization function (possibly NULL)
*
* Note: unregistering an algorithm will leak its map entry, as we don't bother
* to remove it. This should be fine since fips140.ko can't be unloaded. The
* proper solution would be to store the original function pointer in a new
* field in 'struct crypto_alg', but that would require kernel support.
*/
static DEFINE_XARRAY(fips140_init_func_map);
static bool fips140_ready(void)
{
return completion_done(&fips140_tests_done);
}
/*
* Wait until crypto operations are allowed to proceed. Return true if the
* tests are done, or false if the caller is the thread running the tests so it
* is allowed to proceed anyway.
*/
static bool fips140_wait_until_ready(struct crypto_alg *alg)
{
if (fips140_ready())
return true;
/*
* The thread running the tests must not wait. Since tfms can only be
* allocated in task context, we can reliably determine whether the
* invocation is from that thread or not by checking 'current'.
*/
if (current == fips140_init_thread)
return false;
pr_info("blocking user of %s until tests complete\n",
alg->cra_driver_name);
wait_for_completion(&fips140_tests_done);
pr_info("tests done, allowing %s to proceed\n", alg->cra_driver_name);
return true;
}
static int fips140_store_init_function(struct crypto_alg *alg, void *func)
{
void *ret;
/*
* The XArray API requires 4-byte aligned values. Although function
* pointers in general aren't guaranteed to be 4-byte aligned, it should
* be the case for the platforms this module is used on.
*/
if (WARN_ON((unsigned long)func & 3))
return -EINVAL;
ret = xa_store(&fips140_init_func_map, (unsigned long)alg, func,
GFP_KERNEL);
return xa_err(ret);
}
/* Get the algorithm's original initialization function (possibly NULL) */
static void *fips140_load_init_function(struct crypto_alg *alg)
{
return xa_load(&fips140_init_func_map, (unsigned long)alg);
}
/* tfm initialization function overrides */
static int fips140_alg_init_tfm(struct crypto_tfm *tfm)
{
struct crypto_alg *alg = tfm->__crt_alg;
int (*cra_init)(struct crypto_tfm *tfm) =
fips140_load_init_function(alg);
if (fips140_wait_until_ready(alg))
WRITE_ONCE(alg->cra_init, cra_init);
return cra_init ? cra_init(tfm) : 0;
}
static int fips140_aead_init_tfm(struct crypto_aead *tfm)
{
struct aead_alg *alg = crypto_aead_alg(tfm);
int (*init)(struct crypto_aead *tfm) =
fips140_load_init_function(&alg->base);
if (fips140_wait_until_ready(&alg->base))
WRITE_ONCE(alg->init, init);
return init ? init(tfm) : 0;
}
static int fips140_ahash_init_tfm(struct crypto_ahash *tfm)
{
struct hash_alg_common *halg = crypto_hash_alg_common(tfm);
struct ahash_alg *alg = container_of(halg, struct ahash_alg, halg);
int (*init_tfm)(struct crypto_ahash *tfm) =
fips140_load_init_function(&halg->base);
if (fips140_wait_until_ready(&halg->base))
WRITE_ONCE(alg->init_tfm, init_tfm);
return init_tfm ? init_tfm(tfm) : 0;
}
static int fips140_shash_init_tfm(struct crypto_shash *tfm)
{
struct shash_alg *alg = crypto_shash_alg(tfm);
int (*init_tfm)(struct crypto_shash *tfm) =
fips140_load_init_function(&alg->base);
if (fips140_wait_until_ready(&alg->base))
WRITE_ONCE(alg->init_tfm, init_tfm);
return init_tfm ? init_tfm(tfm) : 0;
}
static int fips140_skcipher_init_tfm(struct crypto_skcipher *tfm)
{
struct skcipher_alg *alg = crypto_skcipher_alg(tfm);
int (*init)(struct crypto_skcipher *tfm) =
fips140_load_init_function(&alg->base);
if (fips140_wait_until_ready(&alg->base))
WRITE_ONCE(alg->init, init);
return init ? init(tfm) : 0;
}
/* Single algorithm registration */
#define prepare_alg(alg, base_alg, field, wrapper_func) \
({ \
int err = 0; \
\
if (!fips140_ready() && alg->field != wrapper_func) { \
err = fips140_store_init_function(base_alg, alg->field);\
if (err == 0) \
alg->field = wrapper_func; \
} \
err; \
})
static int fips140_prepare_alg(struct crypto_alg *alg)
{
/*
* Override cra_init. This is only for algorithm types like cipher and
* rng that don't have a strongly-typed initialization function.
*/
return prepare_alg(alg, alg, cra_init, fips140_alg_init_tfm);
}
static int fips140_prepare_aead_alg(struct aead_alg *alg)
{
return prepare_alg(alg, &alg->base, init, fips140_aead_init_tfm);
}
static int fips140_prepare_ahash_alg(struct ahash_alg *alg)
{
return prepare_alg(alg, &alg->halg.base, init_tfm,
fips140_ahash_init_tfm);
}
static int fips140_prepare_rng_alg(struct rng_alg *alg)
{
/*
* rng doesn't have a strongly-typed initialization function, so we must
* treat rng algorithms as "generic" algorithms.
*/
return fips140_prepare_alg(&alg->base);
}
static int fips140_prepare_shash_alg(struct shash_alg *alg)
{
return prepare_alg(alg, &alg->base, init_tfm, fips140_shash_init_tfm);
}
static int fips140_prepare_skcipher_alg(struct skcipher_alg *alg)
{
return prepare_alg(alg, &alg->base, init, fips140_skcipher_init_tfm);
}
int fips140_crypto_register_alg(struct crypto_alg *alg)
{
return fips140_prepare_alg(alg) ?: crypto_register_alg(alg);
}
int fips140_crypto_register_aead(struct aead_alg *alg)
{
return fips140_prepare_aead_alg(alg) ?: crypto_register_aead(alg);
}
int fips140_crypto_register_ahash(struct ahash_alg *alg)
{
return fips140_prepare_ahash_alg(alg) ?: crypto_register_ahash(alg);
}
int fips140_crypto_register_rng(struct rng_alg *alg)
{
return fips140_prepare_rng_alg(alg) ?: crypto_register_rng(alg);
}
int fips140_crypto_register_shash(struct shash_alg *alg)
{
return fips140_prepare_shash_alg(alg) ?: crypto_register_shash(alg);
}
int fips140_crypto_register_skcipher(struct skcipher_alg *alg)
{
return fips140_prepare_skcipher_alg(alg) ?:
crypto_register_skcipher(alg);
}
/* Instance registration */
int fips140_aead_register_instance(struct crypto_template *tmpl,
struct aead_instance *inst)
{
return fips140_prepare_aead_alg(&inst->alg) ?:
aead_register_instance(tmpl, inst);
}
int fips140_ahash_register_instance(struct crypto_template *tmpl,
struct ahash_instance *inst)
{
return fips140_prepare_ahash_alg(&inst->alg) ?:
ahash_register_instance(tmpl, inst);
}
int fips140_shash_register_instance(struct crypto_template *tmpl,
struct shash_instance *inst)
{
return fips140_prepare_shash_alg(&inst->alg) ?:
shash_register_instance(tmpl, inst);
}
int fips140_skcipher_register_instance(struct crypto_template *tmpl,
struct skcipher_instance *inst)
{
return fips140_prepare_skcipher_alg(&inst->alg) ?:
skcipher_register_instance(tmpl, inst);
}
/* Bulk algorithm registration */
int fips140_crypto_register_algs(struct crypto_alg *algs, int count)
{
int i;
int err;
for (i = 0; i < count; i++) {
err = fips140_prepare_alg(&algs[i]);
if (err)
return err;
}
return crypto_register_algs(algs, count);
}
int fips140_crypto_register_aeads(struct aead_alg *algs, int count)
{
int i;
int err;
for (i = 0; i < count; i++) {
err = fips140_prepare_aead_alg(&algs[i]);
if (err)
return err;
}
return crypto_register_aeads(algs, count);
}
int fips140_crypto_register_ahashes(struct ahash_alg *algs, int count)
{
int i;
int err;
for (i = 0; i < count; i++) {
err = fips140_prepare_ahash_alg(&algs[i]);
if (err)
return err;
}
return crypto_register_ahashes(algs, count);
}
int fips140_crypto_register_rngs(struct rng_alg *algs, int count)
{
int i;
int err;
for (i = 0; i < count; i++) {
err = fips140_prepare_rng_alg(&algs[i]);
if (err)
return err;
}
return crypto_register_rngs(algs, count);
}
int fips140_crypto_register_shashes(struct shash_alg *algs, int count)
{
int i;
int err;
for (i = 0; i < count; i++) {
err = fips140_prepare_shash_alg(&algs[i]);
if (err)
return err;
}
return crypto_register_shashes(algs, count);
}
int fips140_crypto_register_skciphers(struct skcipher_alg *algs, int count)
{
int i;
int err;
for (i = 0; i < count; i++) {
err = fips140_prepare_skcipher_alg(&algs[i]);
if (err)
return err;
}
return crypto_register_skciphers(algs, count);
}

Some files were not shown because too many files have changed in this diff Show More