Merge branch 'android13-5.15' into android13-5.15-lts

Need to merge back android13-5.15 to get the ABI updates so we can fix
presubmits on this branch.

Change-Id: If7150cb0c3e4b8872bdebf2e622efb3a0739bd55
Signed-off-by: Alistair Delva <adelva@google.com>
This commit is contained in:
Alistair Delva
2022-08-03 12:40:59 -07:00
122 changed files with 7816 additions and 3257 deletions

View File

@@ -1 +0,0 @@
per-file sysfs-fs-f2fs=file:/fs/f2fs/OWNERS

View File

@@ -223,6 +223,29 @@ address ABI control and MTE configuration of a process as per the
Documentation/arm64/tagged-address-abi.rst and above. The corresponding
``regset`` is 1 element of 8 bytes (``sizeof(long))``).
Core dump support
-----------------
The allocation tags for user memory mapped with ``PROT_MTE`` are dumped
in the core file as additional ``PT_AARCH64_MEMTAG_MTE`` segments. The
program header for such segment is defined as:
:``p_type``: ``PT_AARCH64_MEMTAG_MTE``
:``p_flags``: 0
:``p_offset``: segment file offset
:``p_vaddr``: segment virtual address, same as the corresponding
``PT_LOAD`` segment
:``p_paddr``: 0
:``p_filesz``: segment size in file, calculated as ``p_mem_sz / 32``
(two 4-bit tags cover 32 bytes of memory)
:``p_memsz``: segment size in memory, same as the corresponding
``PT_LOAD`` segment
:``p_align``: 0
The tags are stored in the core file at ``p_offset`` as two 4-bit tags
in a byte. With the tag granule of 16 bytes, a 4K page requires 128
bytes in the core file.
Example of correct usage
========================

View File

@@ -1 +0,0 @@
per-file f2fs**=file:/fs/f2fs/OWNERS

View File

@@ -1961,7 +1961,7 @@ quiet_cmd_gen_compile_commands = GEN $@
cmd_gen_compile_commands = $(PYTHON3) $< -a $(AR) -o $@ $(filter-out $<, $(real-prereqs))
$(extmod_prefix)compile_commands.json: scripts/clang-tools/gen_compile_commands.py \
$(if $(KBUILD_EXTMOD),,$(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)) \
$(if $(KBUILD_EXTMOD)$(KBUILD_MIXED_TREE),,$(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)) \
$(if $(CONFIG_MODULES), $(MODORDER)) FORCE
$(call if_changed,gen_compile_commands)

View File

@@ -1,8 +0,0 @@
# If we ever add another OWNERS above this directory, it's likely to be
# more permissive, so don't inherit from it
set noparent
include kernel/common:android-mainline:/OWNERS_DrNo
# Downstream boards maintained directly in this manifest branch
per-file abi_gki_aarch64_cuttlefish = adelva@google.com, rammuthiah@google.com
per-file abi_gki_aarch64_goldfish = rkir@google.com

File diff suppressed because it is too large Load Diff

View File

@@ -568,6 +568,7 @@
drm_crtc_add_crc_entry
drm_crtc_arm_vblank_event
drm_crtc_cleanup
__drm_crtc_commit_free
drm_crtc_enable_color_mgmt
drm_crtc_handle_vblank
drm_crtc_helper_set_config
@@ -626,6 +627,7 @@
drm_gem_dmabuf_release
drm_gem_dmabuf_vmap
drm_gem_dmabuf_vunmap
drm_gem_fb_begin_cpu_access
drm_gem_fb_create_handle
drm_gem_fb_destroy
drm_gem_handle_create
@@ -661,6 +663,7 @@
drm_kms_helper_poll_enable
drm_kms_helper_poll_fini
drm_kms_helper_poll_init
drm_match_cea_mode
drm_mm_init
drm_mm_insert_node_in_range
drmm_mode_config_init
@@ -673,11 +676,14 @@
drm_mode_config_helper_suspend
drm_mode_config_reset
drm_mode_convert_to_umode
drm_mode_copy
drm_mode_create_scaling_mode_property
drm_mode_crtc_set_gamma_size
drm_mode_debug_printmodeline
drm_mode_destroy
drm_mode_duplicate
drm_mode_equal
drm_mode_is_420_only
drm_mode_match
drm_mode_probed_add
drm_modeset_acquire_fini
@@ -691,6 +697,7 @@
drm_mode_set_name
drm_modeset_unlock
drm_modeset_unlock_all
drm_mode_sort
drm_mode_vrefresh
drm_object_attach_property
drm_open
@@ -745,6 +752,7 @@
drm_universal_plane_init
drm_vblank_init
drm_wait_one_vblank
drm_writeback_cleanup_job
drm_writeback_connector_init
drm_writeback_queue_job
drm_writeback_signal_completion
@@ -756,6 +764,7 @@
dw_pcie_read
dw_pcie_setup_rc
dw_pcie_write
__dynamic_pr_debug
enable_irq
ether_setup
eth_type_trans
@@ -768,6 +777,7 @@
_find_first_bit
_find_first_zero_bit
_find_next_bit
find_task_by_vpid
find_vpid
finish_wait
firmware_request_nowarn
@@ -813,6 +823,7 @@
get_net_ns_by_fd
get_net_ns_by_pid
get_options
get_pid_task
get_random_bytes
get_random_u32
__get_task_comm
@@ -1102,6 +1113,7 @@
__local_bh_enable_ip
__lock_page
loops_per_jiffy
match_string
memchr
memcmp
memcpy
@@ -1112,6 +1124,7 @@
memmove
memory_read_from_buffer
memparse
mem_section
memset
memset64
__memset_io
@@ -1187,6 +1200,7 @@
nr_cpu_ids
nr_irqs
nsecs_to_jiffies
nsec_to_clock_t
ns_to_kernel_old_timeval
ns_to_timespec64
__num_online_cpus
@@ -1261,6 +1275,7 @@
panic
panic_notifier_list
param_array_ops
param_get_charp
param_ops_bint
param_ops_bool
param_ops_charp
@@ -1271,6 +1286,7 @@
param_ops_uint
param_ops_ullong
param_ops_ulong
param_set_charp
param_set_uint
param_set_ulong
pci_alloc_irq_vectors_affinity
@@ -1526,6 +1542,7 @@
__request_module
__request_region
request_threaded_irq
resched_curr
reset_control_assert
reset_control_deassert
return_address
@@ -1551,6 +1568,7 @@
runqueues
sched_clock
sched_feat_keys
sched_feat_names
sched_set_fifo_low
sched_setscheduler
sched_setscheduler_nocheck
@@ -1734,9 +1752,12 @@
srcu_notifier_chain_unregister
sscanf
__stack_chk_fail
stack_trace_save_tsk
start_backtrace
static_key_disable
static_key_slow_dec
static_key_slow_inc
stop_machine
stop_one_cpu_nowait
stpcpy
strcasecmp
@@ -1772,6 +1793,7 @@
synchronize_net
synchronize_rcu
syscon_regmap_lookup_by_phandle
sysctl_sched_features
sysfs_add_file_to_group
sysfs_create_bin_file
sysfs_create_file_ns
@@ -1794,6 +1816,7 @@
system_freezable_wq
system_freezing_cnt
system_highpri_wq
system_long_wq
system_power_efficient_wq
system_state
system_unbound_wq
@@ -1835,12 +1858,18 @@
trace_event_reg
trace_handle_return
__traceiter_android_rvh_can_migrate_task
__traceiter_android_rvh_check_preempt_wakeup
__traceiter_android_rvh_cpu_cgroup_attach
__traceiter_android_rvh_cpu_cgroup_can_attach
__traceiter_android_rvh_cpufreq_transition
__traceiter_android_rvh_dequeue_task
__traceiter_android_rvh_do_sched_yield
__traceiter_android_rvh_enqueue_task
__traceiter_android_rvh_find_busiest_queue
__traceiter_android_rvh_find_lowest_rq
__traceiter_android_rvh_find_new_ilb
__traceiter_android_rvh_flush_task
__traceiter_android_rvh_gic_v3_set_affinity
__traceiter_android_rvh_post_init_entity_util_avg
__traceiter_android_rvh_replace_next_task_fair
__traceiter_android_rvh_sched_fork_init
@@ -1852,16 +1881,22 @@
__traceiter_android_rvh_select_task_rq_fair
__traceiter_android_rvh_select_task_rq_rt
__traceiter_android_rvh_set_task_cpu
__traceiter_android_rvh_tick_entry
__traceiter_android_rvh_update_misfit_status
__traceiter_android_rvh_wake_up_new_task
__traceiter_android_vh_binder_restore_priority
__traceiter_android_vh_binder_set_priority
__traceiter_android_vh_binder_wakeup_ilocked
__traceiter_android_vh_cpu_idle_enter
__traceiter_android_vh_cpu_idle_exit
__traceiter_android_vh_gic_set_affinity
__traceiter_android_rvh_gic_v3_set_affinity
__traceiter_android_vh_ipi_stop
__traceiter_android_vh_logbuf
__traceiter_android_vh_logbuf_pr_cont
__traceiter_android_vh_scheduler_tick
__traceiter_android_vh_ufs_check_int_errors
__traceiter_android_vh_ufs_compl_command
__traceiter_binder_transaction_received
__traceiter_clock_set_rate
__traceiter_device_pm_callback_end
__traceiter_device_pm_callback_start
@@ -1890,12 +1925,18 @@
__traceiter_workqueue_execute_end
__traceiter_workqueue_execute_start
__tracepoint_android_rvh_can_migrate_task
__tracepoint_android_rvh_check_preempt_wakeup
__tracepoint_android_rvh_cpu_cgroup_attach
__tracepoint_android_rvh_cpu_cgroup_can_attach
__tracepoint_android_rvh_cpufreq_transition
__tracepoint_android_rvh_dequeue_task
__tracepoint_android_rvh_do_sched_yield
__tracepoint_android_rvh_enqueue_task
__tracepoint_android_rvh_find_busiest_queue
__tracepoint_android_rvh_find_lowest_rq
__tracepoint_android_rvh_find_new_ilb
__tracepoint_android_rvh_flush_task
__tracepoint_android_rvh_gic_v3_set_affinity
__tracepoint_android_rvh_post_init_entity_util_avg
__tracepoint_android_rvh_replace_next_task_fair
__tracepoint_android_rvh_sched_fork_init
@@ -1907,16 +1948,22 @@
__tracepoint_android_rvh_select_task_rq_fair
__tracepoint_android_rvh_select_task_rq_rt
__tracepoint_android_rvh_set_task_cpu
__tracepoint_android_rvh_tick_entry
__tracepoint_android_rvh_update_misfit_status
__tracepoint_android_rvh_wake_up_new_task
__tracepoint_android_vh_binder_restore_priority
__tracepoint_android_vh_binder_set_priority
__tracepoint_android_vh_binder_wakeup_ilocked
__tracepoint_android_vh_cpu_idle_enter
__tracepoint_android_vh_cpu_idle_exit
__tracepoint_android_vh_gic_set_affinity
__tracepoint_android_rvh_gic_v3_set_affinity
__tracepoint_android_vh_ipi_stop
__tracepoint_android_vh_logbuf
__tracepoint_android_vh_logbuf_pr_cont
__tracepoint_android_vh_scheduler_tick
__tracepoint_android_vh_ufs_check_int_errors
__tracepoint_android_vh_ufs_compl_command
__tracepoint_binder_transaction_received
__tracepoint_clock_set_rate
__tracepoint_device_pm_callback_end
__tracepoint_device_pm_callback_start
@@ -2172,6 +2219,7 @@
wait_for_completion_killable
wait_for_completion_timeout
__wake_up
wake_up_if_idle
__wake_up_locked
__wake_up_locked_key
wake_up_process
@@ -2199,3 +2247,13 @@
xhci_resume
xhci_run
xhci_suspend
zs_compact
zs_create_pool
zs_destroy_pool
zs_free
zs_get_total_pages
zs_huge_class_size
zs_malloc
zs_map_object
zs_pool_stats
zs_unmap_object

View File

@@ -33,6 +33,7 @@
__bitmap_clear
__bitmap_complement
bitmap_find_free_region
bitmap_print_to_pagebuf
bitmap_release_region
__bitmap_set
__bitmap_weight
@@ -176,6 +177,7 @@
cpu_pm_register_notifier
cpu_pm_unregister_notifier
__cpu_possible_mask
__cpu_present_mask
cpus_read_lock
cpus_read_unlock
crc32_le
@@ -393,6 +395,7 @@
dql_reset
driver_unregister
drm_add_edid_modes
drm_add_modes_noedid
drm_any_plane_has_format
drm_aperture_remove_conflicting_pci_framebuffers
drm_atomic_bridge_chain_enable
@@ -611,6 +614,7 @@
drm_prime_sg_to_dma_addr_array
drm_print_bits
drm_printf
__drm_printfn_info
__drm_printfn_seq_file
drm_property_create_enum
drm_property_create_range
@@ -620,6 +624,7 @@
drm_rotation_simplify
drm_set_preferred_mode
drm_simple_encoder_init
drm_state_dump
drm_syncobj_add_point
drm_syncobj_create
drm_syncobj_find
@@ -630,6 +635,7 @@
drm_syncobj_replace_fence
drm_universal_plane_init
drm_vblank_init
drm_writeback_connector_init
dump_backtrace
dump_stack
dw_pcie_ep_init
@@ -644,6 +650,11 @@
eth_commit_mac_addr_change
ether_setup
eth_mac_addr
ethnl_cable_test_amplitude
ethnl_cable_test_fault_length
ethnl_cable_test_pulse
ethnl_cable_test_result
ethnl_cable_test_step
eth_prepare_mac_addr_change
__ethtool_get_link_ksettings
ethtool_op_get_link
@@ -679,6 +690,23 @@
generic_file_llseek
generic_handle_domain_irq
generic_handle_irq
genphy_c45_an_config_aneg
genphy_c45_aneg_done
genphy_c45_check_and_restart_aneg
genphy_c45_loopback
genphy_c45_pma_read_abilities
genphy_c45_pma_setup_forced
genphy_c45_read_link
genphy_c45_read_lpa
genphy_check_and_restart_aneg
__genphy_config_aneg
genphy_read_lpa
genphy_read_status_fixed
genphy_resume
genphy_setup_forced
genphy_soft_reset
genphy_suspend
genphy_update_link
gen_pool_add_owner
gen_pool_alloc_algo_owner
gen_pool_free_owner
@@ -747,6 +775,21 @@
i2c_transfer_buffer_flags
i2c_unregister_device
i2c_verify_client
i3c_generic_ibi_alloc_pool
i3c_generic_ibi_free_pool
i3c_generic_ibi_get_free_slot
i3c_generic_ibi_recycle_slot
i3c_master_add_i3c_dev_locked
i3c_master_defslvs_locked
i3c_master_disec_locked
i3c_master_do_daa
i3c_master_enec_locked
i3c_master_entdaa_locked
i3c_master_get_free_addr
i3c_master_queue_ibi
i3c_master_register
i3c_master_set_info
i3c_master_unregister
ida_alloc_range
ida_free
idr_alloc
@@ -780,6 +823,7 @@
input_set_abs_params
input_unregister_device
input_unregister_handle
int_pow
iomem_resource
iommu_alloc_resv_region
iommu_device_register
@@ -919,8 +963,12 @@
mdiobus_alloc_size
mdiobus_free
mdiobus_get_phy
__mdiobus_read
mdiobus_read
__mdiobus_register
mdiobus_unregister
__mdiobus_write
mdiobus_write
memcpy
__memcpy_fromio
__memcpy_toio
@@ -1171,31 +1219,56 @@
perf_trace_run_bpf_submit
pfn_is_map_memory
phy_attached_info
phy_config_aneg
phy_configure
phy_disconnect
phy_drivers_register
phy_drivers_unregister
phy_error
phy_ethtool_get_eee
phy_ethtool_ksettings_get
phy_ethtool_ksettings_set
phy_ethtool_nway_reset
phy_ethtool_set_eee
phy_exit
phy_gbit_fibre_features
phy_get_eee_err
phy_init
phy_init_eee
phylink_connect_phy
phylink_create
phylink_destroy
phylink_ethtool_ksettings_get
phylink_of_phy_connect
phylink_set_port_modes
phylink_start
phy_mac_interrupt
phy_mii_ioctl
__phy_modify
phy_modify
phy_modify_changed
phy_modify_mmd
phy_modify_mmd_changed
phy_modify_paged
phy_modify_paged_changed
phy_power_off
phy_power_on
phy_read_mmd
phy_read_paged
phy_resolve_aneg_pause
phy_restore_page
phy_resume
phy_save_page
phy_select_page
phy_sfp_attach
phy_sfp_detach
phy_sfp_probe
phy_start_aneg
phy_stop
phy_suspend
phy_trigger_machine
phy_write_mmd
phy_write_paged
pid_task
pinctrl_add_gpio_range
pinctrl_dev_get_drvdata
@@ -1436,6 +1509,7 @@
smp_call_function
smp_call_function_single
smp_call_on_cpu
snd_ctl_enum_info
snd_dmaengine_pcm_prepare_slave_config
snd_pcm_format_width
snd_pcm_hw_constraint_integer
@@ -1445,6 +1519,7 @@
snd_pcm_lib_preallocate_free_for_all
snd_pcm_lib_preallocate_pages
snd_pcm_period_elapsed
snd_soc_add_component_controls
snd_soc_component_init_regmap
snd_soc_component_read
snd_soc_component_update_bits
@@ -1489,6 +1564,7 @@
__splice_from_pipe
split_page
sprintf
sprint_symbol
sscanf
__stack_chk_fail
start_backtrace
@@ -1651,10 +1727,21 @@
ttm_sg_tt_init
ttm_tt_destroy_common
ttm_tt_fini
__tty_alloc_driver
tty_driver_kref_put
tty_flip_buffer_push
tty_insert_flip_string_fixed_flag
tty_kref_put
tty_port_close
tty_port_destroy
tty_port_hangup
tty_port_init
tty_port_link_device
tty_port_open
tty_port_tty_get
tty_register_driver
tty_std_termios
tty_unregister_driver
typec_register_partner
typec_register_port
typec_set_data_role
@@ -1692,6 +1779,7 @@
unregister_blkdev
__unregister_chrdev
unregister_chrdev_region
unregister_console
unregister_netdev
unregister_netdevice_notifier
unregister_netdevice_queue
@@ -1883,3 +1971,13 @@
xdp_rxq_info_reg_mem_model
xdp_rxq_info_unreg
xdp_warn
zs_compact
zs_create_pool
zs_destroy_pool
zs_free
zs_get_total_pages
zs_huge_class_size
zs_malloc
zs_map_object
zs_pool_stats
zs_unmap_object

View File

@@ -0,0 +1,86 @@
[abi_symbol_list]
__alloc_percpu_gfp
bdevname
blkcg_activate_policy
blkcg_deactivate_policy
blkcg_policy_register
blkcg_policy_unregister
blkcg_root
blkdev_get_by_dev
blkdev_get_by_path
blkdev_issue_flush
blkg_lookup_slowpath
blk_mq_free_request
blk_mq_sched_try_insert_merge
blk_mq_sched_try_merge
blk_queue_rq_timeout
class_create_file_ns
class_remove_file_ns
cleancache_register_ops
copy_page
crc16
create_function_device
css_next_descendant_pre
_dev_alert
drm_edid_get_monitor_name
drm_edid_is_valid
elevator_alloc
elv_bio_merge_ok
elv_rb_add
elv_rb_del
elv_rb_find
elv_rb_former_request
elv_rb_latter_request
elv_register
elv_rqhash_add
elv_rqhash_del
elv_unregister
file_ra_state_init
file_write_and_wait_range
generic_perform_write
generic_write_checks
get_options
get_random_u64
gs_alloc_req
gserial_free_line
gserial_resume
gserial_suspend
gs_free_req
__kfifo_out_peek
kmsg_dump_get_line
kthread_blkcg
name_to_dev_t
netlink_ack
of_css
phy_connect_direct
phy_find_first
phy_get_pause
phy_resolve_aneg_linkmode
pinctrl_get
proc_set_size
pstore_register
pstore_unregister
sbitmap_queue_min_shallow_depth
smpboot_unregister_percpu_thread
__traceiter_android_rvh_die_kernel_fault
__traceiter_android_rvh_do_mem_abort
__traceiter_android_rvh_do_sp_pc_abort
__traceiter_android_rvh_do_undefinstr
__traceiter_android_vh_meminfo_proc_show
__traceiter_android_vh_show_mem
__traceiter_block_rq_insert
__tracepoint_android_rvh_die_kernel_fault
__tracepoint_android_rvh_do_mem_abort
__tracepoint_android_rvh_do_sp_pc_abort
__tracepoint_android_rvh_do_undefinstr
__tracepoint_android_vh_meminfo_proc_show
__tracepoint_android_vh_show_mem
__tracepoint_block_rq_insert
__tracepoint_hrtimer_expire_entry
__tracepoint_hrtimer_expire_exit
__tracepoint_irq_handler_entry
__tracepoint_irq_handler_exit
__tracepoint_workqueue_execute_start
usbnet_defer_kevent
usb_set_device_state
vfs_fsync_range

View File

@@ -29,6 +29,10 @@
__arch_copy_to_user
arch_freq_scale
arch_timer_read_counter
arm_smccc_1_1_get_conduit
arm_smccc_1_2_hvc
arm_smccc_1_2_smc
arm_smccc_get_version
arm64_const_caps_ready
arm64_use_ng_mappings
__arm_smccc_hvc
@@ -317,6 +321,7 @@
device_init_wakeup
device_link_add
device_link_remove
device_match_any
device_node_to_regmap
device_property_present
device_property_read_string
@@ -1163,6 +1168,7 @@
mmc_detect_change
mmc_free_host
mmc_get_card
mmc_get_ext_csd
mmc_gpio_get_cd
mmc_gpio_get_ro
mmc_hw_reset
@@ -1938,7 +1944,9 @@
__traceiter_android_rvh_commit_creds
__traceiter_android_rvh_cpu_overutilized
__traceiter_android_rvh_dequeue_task
__traceiter_android_rvh_dequeue_task_fair
__traceiter_android_rvh_enqueue_task
__traceiter_android_rvh_enqueue_task_fair
__traceiter_android_rvh_exit_creds
__traceiter_android_rvh_find_busiest_group
__traceiter_android_rvh_find_busiest_queue
@@ -1964,6 +1972,7 @@
__traceiter_android_rvh_selinux_is_initialized
__traceiter_android_rvh_setscheduler
__traceiter_android_rvh_set_cpus_allowed_ptr_locked
__traceiter_android_rvh_set_cpus_allowed_by_task
__traceiter_android_rvh_set_user_nice
__traceiter_android_rvh_tick_entry
__traceiter_android_rvh_update_cpu_capacity
@@ -2001,6 +2010,7 @@
__traceiter_mmap_lock_released
__traceiter_mmap_lock_start_locking
__traceiter_pelt_se_tp
__traceiter_sched_update_nr_running_tp
__traceiter_task_newtask
__traceiter_xhci_urb_giveback
trace_output_call
@@ -2009,7 +2019,9 @@
__tracepoint_android_rvh_commit_creds
__tracepoint_android_rvh_cpu_overutilized
__tracepoint_android_rvh_dequeue_task
__tracepoint_android_rvh_dequeue_task_fair
__tracepoint_android_rvh_enqueue_task
__tracepoint_android_rvh_enqueue_task_fair
__tracepoint_android_rvh_exit_creds
__tracepoint_android_rvh_find_busiest_group
__tracepoint_android_rvh_find_busiest_queue
@@ -2035,6 +2047,7 @@
__tracepoint_android_rvh_selinux_is_initialized
__tracepoint_android_rvh_setscheduler
__tracepoint_android_rvh_set_cpus_allowed_ptr_locked
__tracepoint_android_rvh_set_cpus_allowed_by_task
__tracepoint_android_rvh_set_user_nice
__tracepoint_android_rvh_tick_entry
__tracepoint_android_rvh_update_cpu_capacity
@@ -2074,6 +2087,8 @@
__tracepoint_pelt_se_tp
tracepoint_probe_register
tracepoint_probe_unregister
__tracepoint_sched_update_nr_running_tp
tracepoint_srcu
__tracepoint_task_newtask
__tracepoint_xhci_urb_giveback
trace_print_array_seq
@@ -2116,6 +2131,9 @@
__ubsan_handle_cfi_check_fail_abort
uclamp_eff_value
__udelay
ufshcd_add_command_trace
ufshcd_clk_scaling_start_busy
ufshcd_clk_scaling_update_busy
ufshcd_delay_us
ufshcd_dme_configure_adapt
ufshcd_dme_get_attr
@@ -2123,6 +2141,7 @@
ufshcd_dump_regs
ufshcd_fixup_dev_quirks
ufshcd_get_pwr_dev_param
ufshcd_get_vreg
ufshcd_hba_enable
ufshcd_hba_stop
ufshcd_init_pwr_dev_param
@@ -2130,6 +2149,7 @@
ufshcd_make_hba_operational
ufshcd_pltfrm_init
ufshcd_pltfrm_shutdown
ufshcd_populate_vreg
ufshcd_query_attr
ufshcd_query_descriptor_retry
ufshcd_query_flag
@@ -2141,6 +2161,8 @@
ufshcd_suspend_prepare
ufshcd_system_resume
ufshcd_system_suspend
ufshcd_transfer_rsp_status
ufshcd_uic_change_pwr_mode
ufshcd_uic_hibern8_exit
ufshcd_update_evt_hist
unlock_page
@@ -2210,9 +2232,13 @@
usb_get_maximum_speed
usb_get_role_switch_default_mode
usb_gstrings_attach
usb_hcd_end_port_resume
usb_hcd_is_primary_hcd
usb_hcd_poll_rh_status
usb_hcd_start_port_resume
usb_hub_clear_tt_buffer
usb_interface_id
usb_wakeup_notification
usbnet_change_mtu
usbnet_disconnect
usbnet_get_drvinfo
@@ -2484,6 +2510,7 @@
pci_set_power_state
pci_unregister_driver
_raw_spin_trylock_bh
radix_tree_maybe_preload
register_inetaddr_notifier
regmap_multi_reg_write
regmap_register_patch
@@ -2491,6 +2518,8 @@
rtnl_is_locked
sched_setattr
sched_set_fifo_low
sg_pcopy_from_buffer
sg_pcopy_to_buffer
skb_copy
skb_pull_rcsum
skb_queue_head

View File

@@ -12,10 +12,13 @@
__alloc_pages
alloc_pages_exact
__alloc_percpu
__alloc_percpu_gfp
__alloc_skb
alloc_workqueue
anon_inode_getfd
anon_inode_getfile
arc4_crypt
arc4_setkey
__arch_clear_user
__arch_copy_from_user
__arch_copy_to_user
@@ -23,6 +26,8 @@
arm64_use_ng_mappings
__arm_smccc_hvc
__arm_smccc_smc
atomic_notifier_chain_register
atomic_notifier_chain_unregister
backlight_device_register
backlight_device_unregister
baswap
@@ -34,6 +39,7 @@
bitmap_find_free_region
bitmap_find_next_zero_area_off
bitmap_from_arr32
bitmap_release_region
__bitmap_set
bitmap_to_arr32
__bitmap_weight
@@ -51,11 +57,14 @@
blocking_notifier_chain_register
blocking_notifier_chain_unregister
block_is_partially_uptodate
bpf_trace_run10
bpf_trace_run1
bpf_trace_run2
bpf_trace_run3
bpf_trace_run4
bpf_trace_run5
bpf_trace_run6
bpf_trace_run7
__bread_gfp
__brelse
bt_err
@@ -75,6 +84,7 @@
bus_unregister
bus_unregister_notifier
cache_line_size
call_rcu
cancel_delayed_work
cancel_delayed_work_sync
cancel_work_sync
@@ -154,6 +164,7 @@
component_match_add_release
component_unbind_all
console_printk
console_suspend_enabled
__const_udelay
consume_skb
contig_page_data
@@ -187,18 +198,33 @@
cpus_read_lock
cpus_read_unlock
crc32_be
crc32_le
create_empty_buffers
crypto_aead_decrypt
crypto_aead_encrypt
crypto_aead_setauthsize
crypto_aead_setkey
crypto_alloc_aead
crypto_alloc_base
crypto_alloc_shash
crypto_alloc_skcipher
crypto_comp_compress
crypto_comp_decompress
crypto_destroy_tfm
crypto_has_alg
__crypto_memneq
crypto_register_alg
crypto_shash_digest
crypto_shash_final
crypto_shash_finup
crypto_shash_setkey
crypto_shash_update
crypto_skcipher_decrypt
crypto_skcipher_encrypt
crypto_skcipher_setkey
crypto_unregister_alg
crypto_unregister_scomp
__crypto_xor
_ctype
d_add
d_add_ci
@@ -216,6 +242,8 @@
debugfs_create_u8
debugfs_create_x32
debugfs_remove
debugfs_rename
dec_zone_page_state
default_llseek
deferred_free
delayed_work_timer_fn
@@ -224,10 +252,15 @@
del_timer_sync
desc_to_gpio
destroy_workqueue
_dev_alert
dev_alloc_name
__dev_change_net_namespace
dev_close
_dev_crit
dev_driver_string
_dev_emerg
_dev_err
dev_fetch_sw_netstats
devfreq_add_governor
devfreq_get_devfreq_by_phandle
devfreq_monitor_resume
@@ -240,6 +273,8 @@
devfreq_suspend_device
devfreq_update_interval
dev_fwnode
__dev_get_by_index
dev_get_by_index
device_add
device_add_disk
device_create
@@ -259,9 +294,11 @@
device_property_read_u32_array
device_register
device_remove_file
device_rename
device_unregister
_dev_info
__dev_kfree_skb_any
devm_clk_bulk_get_all
devm_clk_get
devm_clk_get_optional
devm_clk_put
@@ -302,6 +339,7 @@
__devm_of_phy_provider_register
devm_pci_alloc_host_bridge
devm_phy_create
devm_phy_optional_get
devm_pinctrl_get
devm_platform_ioremap_resource
devm_pwm_get
@@ -313,6 +351,7 @@
devm_request_pci_bus_resources
__devm_request_region
devm_request_threaded_irq
__devm_reset_control_get
devm_rtc_allocate_device
__devm_rtc_register_device
devm_snd_soc_register_card
@@ -337,6 +376,7 @@
dev_pm_opp_put_regulators
dev_pm_opp_set_regulators
_dev_printk
dev_queue_xmit
devres_add
__devres_alloc_node
devres_free
@@ -526,6 +566,8 @@
ether_setup
eth_header
eth_header_parse
eth_mac_addr
ethtool_op_get_link
eth_type_trans
eth_validate_addr
event_triggers_call
@@ -569,8 +611,10 @@
generic_file_open
generic_file_read_iter
generic_file_splice_read
generic_handle_domain_irq
generic_handle_irq
generic_read_dir
genlmsg_multicast_allns
genlmsg_put
genl_register_family
genl_unregister_family
@@ -592,6 +636,8 @@
get_device
__get_free_pages
get_kernel_pages
get_net_ns_by_fd
get_net_ns_by_pid
get_random_bytes
get_random_u32
__get_task_comm
@@ -624,6 +670,7 @@
gpio_request
gpio_to_desc
handle_edge_irq
handle_fasteoi_irq
handle_simple_irq
handle_sysrq
hci_alloc_dev_priv
@@ -638,6 +685,9 @@
hrtimer_init
hrtimer_start_range_ns
hrtimer_try_to_cancel
__hw_addr_init
__hw_addr_sync
__hw_addr_unsync
hwspin_lock_free
hwspin_lock_get_id
hwspin_lock_request
@@ -681,12 +731,16 @@
__iio_device_register
iio_device_unregister
iio_read_channel_processed
iio_read_channel_scale
inc_zone_page_state
in_egroup_p
inet_csk_get_port
init_net
init_pseudo
__init_rwsem
__init_swait_queue_head
init_timer_key
init_uts_ns
init_wait_entry
__init_waitqueue_head
inode_init_once
@@ -752,11 +806,16 @@
kasan_flag_enabled
kasprintf
kernel_kobj
kernel_param_lock
kernel_param_unlock
kernel_sendmsg
kernel_sigaction
kern_mount
kern_path
kern_unmount
key_create_or_update
key_put
keyring_alloc
__kfifo_alloc
__kfifo_free
__kfifo_in
@@ -767,6 +826,7 @@
kfree
kfree_sensitive
kfree_skb
kfree_skb_list
kill_anon_super
kill_block_super
kimage_voffset
@@ -802,11 +862,13 @@
kthread_stop
ktime_get
ktime_get_coarse_real_ts64
ktime_get_coarse_with_offset
ktime_get_mono_fast_ns
ktime_get_raw
ktime_get_raw_ts64
ktime_get_real_seconds
ktime_get_real_ts64
ktime_get_seconds
ktime_get_ts64
ktime_get_with_offset
kvfree
@@ -821,6 +883,7 @@
list_sort
load_nls
load_nls_default
__local_bh_enable_ip
__lock_buffer
__lock_page
lzo1x_1_compress
@@ -861,6 +924,9 @@
__memset_io
memstart_addr
memunmap
mii_ethtool_get_link_ksettings
mii_ethtool_set_link_ksettings
mii_nway_restart
misc_deregister
misc_register
__mmap_lock_do_trace_acquire_returned
@@ -903,23 +969,35 @@
__napi_schedule_irqoff
napi_schedule_prep
__netdev_alloc_skb
netdev_err
netdev_info
netdev_set_default_ethtool_ops
netif_carrier_off
netif_carrier_on
netif_napi_add
__netif_napi_del
netif_receive_skb
netif_receive_skb_list
netif_rx
netif_rx_ni
netif_tx_stop_all_queues
netif_tx_wake_queue
netlink_broadcast
netlink_register_notifier
netlink_unicast
netlink_unregister_notifier
net_ns_type_operations
net_ratelimit
new_inode
nla_find
nla_memcpy
__nla_parse
nla_put_64bit
nla_put
nla_put_nohdr
nla_reserve
nla_strscpy
__nla_validate
no_llseek
nonseekable_open
noop_llseek
@@ -987,6 +1065,7 @@
of_property_read_variable_u32_array
of_property_read_variable_u8_array
of_prop_next_string
of_prop_next_u32
of_reserved_mem_device_init_by_idx
of_reserved_mem_device_release
of_reserved_mem_lookup
@@ -999,6 +1078,7 @@
page_endio
page_mapping
panic
panic_notifier_list
param_array_ops
param_get_int
param_ops_bool
@@ -1023,13 +1103,17 @@
pci_generic_config_read32
pci_generic_config_write32
pci_get_device
pci_host_probe
pci_lock_rescan_remove
pci_msi_create_irq_domain
pci_msi_mask_irq
pci_msi_unmask_irq
pci_pio_to_address
pci_remap_iospace
pci_remove_root_bus
pci_scan_root_bus_bridge
pci_stop_root_bus
pci_unlock_rescan_remove
pci_unmap_iospace
PDE_DATA
__per_cpu_offset
@@ -1099,6 +1183,7 @@
power_supply_changed
power_supply_register
power_supply_unregister
prandom_bytes
preempt_schedule
preempt_schedule_notrace
prepare_to_wait_event
@@ -1113,8 +1198,11 @@
proc_set_user
proto_register
proto_unregister
pskb_expand_head
__pskb_pull_tail
___pskb_trim
put_device
__put_net
__put_page
put_pid
__put_task_struct
@@ -1164,12 +1252,14 @@
__register_chrdev
register_chrdev_region
register_filesystem
register_inet6addr_notifier
register_inetaddr_notifier
register_kprobe
register_netdev
register_netdevice
register_netdevice_notifier
register_oom_notifier
register_pernet_device
register_pm_notifier
register_reboot_notifier
__register_rpmsg_driver
@@ -1208,6 +1298,24 @@
__request_module
__request_region
request_threaded_irq
reset_control_assert
reset_control_deassert
rfkill_alloc
rfkill_blocked
rfkill_destroy
rfkill_register
rfkill_resume_polling
rfkill_set_hw_state_reason
rfkill_unregister
rhashtable_free_and_destroy
rhashtable_insert_slow
rhltable_init
__rht_bucket_nested
rht_bucket_nested
rht_bucket_nested_insert
round_jiffies
round_jiffies_relative
round_jiffies_up
rpmsg_create_channel
rpmsg_create_ept
rpmsg_find_device
@@ -1262,10 +1370,15 @@
seq_write
serial8250_do_pm
serial8250_do_set_termios
serial8250_do_shutdown
serial8250_do_startup
serial8250_get_port
serial8250_modem_status
serial8250_register_8250_port
serial8250_resume_port
serial8250_rpm_get
serial8250_rpm_put
serial8250_rpm_put_tx
serial8250_rx_chars
serial8250_suspend_port
serial8250_tx_chars
@@ -1298,10 +1411,19 @@
single_open
single_release
sk_alloc
skb_add_rx_frag
skb_checksum_help
skb_clone
skb_clone_sk
skb_complete_wifi_ack
skb_copy
skb_copy_bits
skb_copy_expand
skb_dequeue
skb_dequeue_tail
skb_ensure_writable
__skb_get_hash
__skb_gso_segment
skb_pull
skb_pull_rcsum
skb_push
@@ -1359,6 +1481,7 @@
snd_timer_start
snd_timer_stop
snprintf
__sock_create
sockfd_lookup
sock_init_data
sock_no_accept
@@ -1371,6 +1494,7 @@
sock_no_sendmsg
sock_no_shutdown
sock_no_socketpair
sock_release
__spi_alloc_controller
spi_finalize_current_message
spi_new_device
@@ -1412,8 +1536,10 @@
strstr
submit_bh
suspend_set_ops
__sw_hweight16
__sw_hweight32
__sw_hweight64
__sw_hweight8
__symbol_get
__symbol_put
symbol_put_addr
@@ -1428,6 +1554,7 @@
sysfs_create_file_ns
sysfs_create_group
sysfs_create_groups
sysfs_create_link
sysfs_emit
sysfs_emit_at
__sysfs_match_string
@@ -1436,9 +1563,11 @@
sysfs_remove_file_ns
sysfs_remove_group
sysfs_remove_groups
sysfs_remove_link
sysfs_streq
sysfs_unmerge_group
sysfs_update_group
system_freezable_wq
system_freezing_cnt
system_highpri_wq
system_power_efficient_wq
@@ -1447,6 +1576,7 @@
tasklet_init
tasklet_kill
__tasklet_schedule
tasklet_setup
tasklet_unlock_wait
thermal_cooling_device_unregister
thermal_of_cooling_device_register
@@ -1502,6 +1632,7 @@
tty_unregister_driver
uart_get_baud_rate
uart_get_divisor
uart_write_wakeup
__ubsan_handle_cfi_check_fail_abort
__udelay
unload_nls
@@ -1515,11 +1646,14 @@
__unregister_chrdev
unregister_chrdev_region
unregister_filesystem
unregister_inet6addr_notifier
unregister_inetaddr_notifier
unregister_netdev
unregister_netdevice_many
unregister_netdevice_notifier
unregister_netdevice_queue
unregister_oom_notifier
unregister_pernet_device
unregister_pm_notifier
unregister_reboot_notifier
unregister_rpmsg_driver
@@ -1669,6 +1803,7 @@
vb2_streamoff
vb2_streamon
vb2_vmalloc_memops
verify_pkcs7_signature
vfree
vfs_llseek
video_devdata
@@ -1718,6 +1853,7 @@
watchdog_register_device
watchdog_set_restart_priority
watchdog_unregister_device
wireless_nlevent_flush
wireless_send_event
woken_wake_function
ww_mutex_lock

View File

@@ -55,6 +55,7 @@
dec_zone_page_state
delayed_work_timer_fn
del_gendisk
del_timer
del_timer_sync
device_add_disk
disk_end_io_acct
@@ -70,25 +71,40 @@
free_percpu
fs_bio_set
fsync_bdev
genlmsg_put
genl_register_family
genl_unregister_family
__get_free_pages
get_wchan
idr_alloc
idr_destroy
idr_find
idr_for_each
idr_remove
inc_zone_page_state
__inet6_lookup_established
inet_csk_get_port
__inet_lookup_established
init_net
init_pseudo
__init_rwsem
init_timer_key
init_wait_entry
__init_waitqueue_head
io_schedule
ip6_local_out
ip6_route_me_harder
ip_local_out
ip_route_me_harder
iput
ipv6_find_hdr
ipv6_skip_exthdr
jiffies
kasan_flag_enabled
kern_mount
kern_unmount
kfree
kfree_skb
kill_anon_super
kmalloc_caches
kmem_cache_alloc
@@ -105,13 +121,15 @@
kthread_create_on_node
kthread_should_stop
kthread_stop
ktime_get_raw_ts64
ktime_get_real_ts64
__list_add_valid
__list_del_entry_valid
__lock_page
memcpy
memparse
memset64
memset
memset64
memstart_addr
migrate_page_copy
mod_timer
@@ -122,6 +140,17 @@
mutex_lock
mutex_trylock
mutex_unlock
nf_ct_attach
nf_ct_delete
nf_register_net_hooks
nf_unregister_net_hooks
nla_find
nla_memcpy
__nla_parse
nla_put
nla_put_64bit
nla_reserve
nla_reserve_64bit
nr_cpu_ids
__num_online_cpus
page_endio
@@ -129,6 +158,10 @@
page_mapping
param_ops_uint
__per_cpu_offset
platform_device_add
platform_device_alloc
platform_device_put
platform_driver_unregister
preempt_schedule
preempt_schedule_notrace
prepare_to_wait
@@ -161,13 +194,17 @@
__register_blkdev
register_reboot_notifier
register_shrinker
register_sysctl_table
register_tcf_proto_ops
schedule
schedule_timeout
scnprintf
shrink_slab
set_capacity
set_capacity_and_notify
__SetPageMovable
shrink_slab
__skb_checksum_complete
skb_dump
snprintf
sprintf
__stack_chk_fail
@@ -175,6 +212,7 @@
strcpy
strlcpy
strlen
strncmp
strncpy
submit_bio
sysfs_create_files
@@ -183,22 +221,96 @@
sysfs_streq
system_freezable_wq
system_wq
tcf_action_exec
tcf_exts_destroy
tcf_exts_dump
tcf_exts_dump_stats
tcf_exts_validate
tcf_queue_work
tcp_hashinfo
__traceiter_android_rvh_check_preempt_wakeup_ignore
__traceiter_android_rvh_pick_next_entity
__traceiter_android_rvh_place_entity
__traceiter_android_vh_account_task_time
__traceiter_android_vh_alloc_pages_slowpath
__traceiter_android_vh_binder_free_proc
__traceiter_android_vh_binder_has_work_ilocked
__traceiter_android_vh_binder_looper_state_registered
__traceiter_android_vh_binder_preset
__traceiter_android_vh_binder_priority_skip
__traceiter_android_vh_binder_proc_transaction_entry
__traceiter_android_vh_binder_proc_transaction_finish
__traceiter_android_vh_binder_read_done
__traceiter_android_vh_binder_select_worklist_ilocked
__traceiter_android_vh_binder_thread_read
__traceiter_android_vh_binder_thread_release
__traceiter_android_vh_build_sched_domains
__traceiter_android_vh_cache_show
__traceiter_android_vh_cma_drain_all_pages_bypass
__traceiter_android_vh_drain_all_pages_bypass
__traceiter_android_vh_exit_signal
__traceiter_android_vh_futex_sleep_start
__traceiter_android_vh_irqtime_account_process_tick
__traceiter_android_vh_page_referenced_check_bypass
__traceiter_android_vh_pcplist_add_cma_pages_bypass
__traceiter_android_vh_print_slabinfo_header
__traceiter_android_vh_rwsem_wake_finish
__traceiter_android_vh_sched_stat_runtime_rt
__traceiter_android_vh_sync_txn_recvd
__traceiter_sched_stat_blocked
__traceiter_sched_stat_iowait
__traceiter_sched_stat_runtime
__traceiter_sched_stat_sleep
__traceiter_sched_stat_wait
__traceiter_sched_waking
__traceiter_task_rename
__tracepoint_android_rvh_check_preempt_wakeup_ignore
__tracepoint_android_rvh_pick_next_entity
__tracepoint_android_rvh_place_entity
__tracepoint_android_vh_account_task_time
__tracepoint_android_vh_alloc_pages_slowpath
__tracepoint_android_vh_binder_free_proc
__tracepoint_android_vh_binder_has_work_ilocked
__tracepoint_android_vh_binder_looper_state_registered
__tracepoint_android_vh_binder_preset
__tracepoint_android_vh_binder_priority_skip
__tracepoint_android_vh_binder_proc_transaction_entry
__tracepoint_android_vh_binder_proc_transaction_finish
__tracepoint_android_vh_binder_read_done
__tracepoint_android_vh_binder_select_worklist_ilocked
__tracepoint_android_vh_binder_thread_read
__tracepoint_android_vh_binder_thread_release
__tracepoint_android_vh_build_sched_domains
__tracepoint_android_vh_cache_show
__tracepoint_android_vh_cma_drain_all_pages_bypass
__tracepoint_android_vh_drain_all_pages_bypass
__tracepoint_android_vh_exit_signal
__tracepoint_android_vh_futex_sleep_start
__tracepoint_android_vh_irqtime_account_process_tick
__tracepoint_android_vh_page_referenced_check_bypass
__tracepoint_android_vh_pcplist_add_cma_pages_bypass
__tracepoint_android_vh_print_slabinfo_header
__tracepoint_android_vh_rwsem_wake_finish
__tracepoint_android_vh_sched_stat_runtime_rt
__tracepoint_android_vh_sync_txn_recvd
__tracepoint_sched_stat_blocked
__tracepoint_sched_stat_iowait
__tracepoint_sched_stat_runtime
__tracepoint_sched_stat_sleep
__tracepoint_sched_stat_wait
__tracepoint_sched_waking
__tracepoint_task_rename
__ubsan_handle_cfi_check_fail_abort
unlock_page
unregister_blkdev
unregister_reboot_notifier
unregister_shrinker
unregister_sysctl_table
unregister_tcf_proto_ops
up_read
up_write
vfree
vzalloc
__wake_up
wake_up_process
__traceiter_android_vh_page_referenced_check_bypass
__traceiter_android_vh_drain_all_pages_bypass
__traceiter_android_vh_cma_drain_all_pages_bypass
__traceiter_android_vh_pcplist_add_cma_pages_bypass
__tracepoint_android_vh_page_referenced_check_bypass
__tracepoint_android_vh_drain_all_pages_bypass
__tracepoint_android_vh_cma_drain_all_pages_bypass
__tracepoint_android_vh_pcplist_add_cma_pages_bypass
wq_worker_comm

View File

@@ -10,6 +10,7 @@
add_wait_queue
aes_encrypt
aes_expandkey
alarm_expires_remaining
alloc_anon_inode
alloc_chrdev_region
alloc_io_pgtable_ops
@@ -144,6 +145,7 @@
__clk_get_name
clk_get_parent
clk_get_rate
clk_get_sys
clk_hw_get_flags
clk_hw_get_name
clk_hw_get_num_parents
@@ -715,6 +717,7 @@
get_zeroed_page
gic_nonsecure_priorities
gic_resume
gic_v2_resume
gov_attr_set_init
gov_attr_set_put
governor_sysfs_ops
@@ -780,6 +783,12 @@
i2c_put_dma_safe_msg_buf
i2c_register_driver
i2c_smbus_read_i2c_block_data
i3c_device_disable_ibi
i3c_device_enable_ibi
i3c_device_free_ibi
i3c_device_get_info
i3c_device_request_ibi
i3cdev_to_dev
i3c_generic_ibi_alloc_pool
i3c_generic_ibi_free_pool
i3c_generic_ibi_get_free_slot
@@ -798,6 +807,8 @@
icc_link_create
icc_node_add
icc_node_create
icc_node_del
icc_node_destroy
icc_nodes_remove
icc_provider_add
icc_provider_del
@@ -817,6 +828,8 @@
idr_preload
idr_remove
idr_replace
iio_channel_get
iio_channel_release
iio_read_channel_processed
iio_write_channel_raw
import_iovec
@@ -865,6 +878,7 @@
iommu_device_sysfs_add
iommu_device_sysfs_remove
iommu_device_unregister
iommu_dma_enable_best_fit_algo
iommu_dma_get_resv_regions
iommu_domain_alloc
iommu_domain_free
@@ -1250,8 +1264,10 @@
of_thermal_get_trip_points
of_thermal_is_trip_valid
of_translate_address
on_each_cpu_cond_mask
oops_in_progress
page_endio
page_is_ram
page_mapping
page_pool_alloc_pages
page_pool_create
@@ -1481,6 +1497,7 @@
pwmchip_add
pwmchip_remove
qcom_smem_state_get
qcom_smem_state_put
qcom_smem_state_register
qcom_smem_state_unregister
qcom_smem_state_update_bits
@@ -1597,6 +1614,7 @@
regulator_enable
regulator_force_disable
regulator_get
regulator_get_drvdata
regulator_get_mode
regulator_get_voltage
regulator_get_voltage_rdev
@@ -2017,6 +2035,7 @@
__tracepoint_android_rvh_update_cpu_capacity
__tracepoint_android_rvh_update_cpus_allowed
__tracepoint_android_rvh_update_misfit_status
__tracepoint_android_rvh_update_thermal_stats
__tracepoint_android_rvh_wake_up_new_task
__tracepoint_android_vh_audio_usb_offload_connect
__tracepoint_android_vh_binder_restore_priority
@@ -2035,6 +2054,7 @@
__tracepoint_android_vh_ftrace_oops_exit
__tracepoint_android_vh_ftrace_size_check
__tracepoint_android_vh_gic_resume
__tracepoint_android_vh_gic_v2_resume
__tracepoint_android_vh_handle_tlb_conf
__tracepoint_android_vh_ipi_stop
__tracepoint_android_vh_jiffies_update

View File

@@ -59,6 +59,7 @@
blk_mq_requeue_request
blk_mq_run_hw_queues
blk_update_request
blockdev_superblock
blocking_notifier_chain_register
blocking_notifier_chain_unregister
bpf_trace_run1
@@ -122,6 +123,9 @@
cpu_hotplug_disable
cpu_hwcap_keys
cpu_hwcaps
cpu_latency_qos_add_request
cpu_latency_qos_remove_request
cpu_latency_qos_update_request
cpumask_next
cpumask_next_and
cpufreq_add_update_util_hook
@@ -153,6 +157,7 @@
crypto_unregister_shash
crypto_unregister_shashes
__crypto_xor
css_next_child
csum_ipv6_magic
csum_partial
__dynamic_netdev_dbg
@@ -539,6 +544,10 @@
kmem_cache_destroy
kmem_cache_free
kmemdup
kmsg_dump_get_buffer
kmsg_dump_register
kmsg_dump_rewind
kmsg_dump_unregister
kobject_create_and_add
kobject_uevent_env
ksoftirqd
@@ -621,6 +630,7 @@
nf_ct_l4proto_find
nf_register_net_hooks
nf_unregister_net_hooks
nla_strscpy
node_states
noop_llseek
nr_cpu_ids
@@ -680,6 +690,7 @@
__pci_register_driver
pci_set_master
pci_unregister_driver
pcpu_nr_pages
PDE_DATA
__per_cpu_offset
perf_trace_buf_alloc
@@ -838,6 +849,7 @@
rfkill_resume_polling
rfkill_set_hw_state_reason
rfkill_unregister
root_task_group
runqueues
__SetPageMovable
sched_clock
@@ -871,6 +883,8 @@
sg_nents
sg_next
shmem_read_mapping_page_gfp
si_mem_available
si_swapinfo
simple_attr_open
simple_attr_read
simple_attr_release
@@ -1110,11 +1124,15 @@
vchan_tx_submit
vfree
vmalloc
vmalloc_nr_pages
vmalloc_to_page
vm_map_ram
vm_memory_committed
vm_node_stat
vm_unmap_aliases
vm_unmap_ram
vm_iomap_memory
vm_zone_stat
vsnprintf
vscnprintf
vunmap
@@ -1157,6 +1175,7 @@
xt_unregister_matches
xt_unregister_target
xt_unregister_targets
__trace_bprintk
__traceiter_android_rvh_account_irq
__traceiter_android_rvh_account_irq_end
__traceiter_android_rvh_account_irq_start
@@ -1230,6 +1249,7 @@
__traceiter_android_vh_thermal_register
__traceiter_android_vh_thermal_unregister
__traceiter_android_vh_update_topology_flags_workfn
__traceiter_android_vh_usb_new_device_added
__traceiter_cpu_frequency
__traceiter_cpu_frequency_limits
__traceiter_pelt_se_tp
@@ -1588,6 +1608,7 @@
__traceiter_android_vh_printk_caller_id
__traceiter_android_vh_printk_ext_header
__traceiter_android_rvh_report_bug
__traceiter_clock_set_rate
__tracepoint_android_vh_dma_buf_release
__tracepoint_android_rvh_psci_tos_resident_on
__tracepoint_android_rvh_psci_cpu_suspend
@@ -1922,6 +1943,7 @@
mmc_switch
mmc_wait_for_cmd
dma_map_sg_attrs
mmc_issue_type
# required by sdiohal.ko
mmc_detect_change
@@ -2504,6 +2526,16 @@
kobject_uevent
match_string
# required by typec_displayport.ko
extcon_sync
typec_altmode2port
typec_altmode_enter
typec_altmode_exit
typec_altmode_get_partner
__typec_altmode_register_driver
typec_altmode_unregister_driver
typec_get_negotiated_svdm_version
# required by usb-storage.ko
blk_queue_bounce_limit
blk_queue_max_hw_sectors

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
[abi_symbol_list]
# abi_gki_aarch64_virtual_device contains all the symbols that are used by the
# virtual device modules. Here goes all the symbols that were used
# in abi_gki_aarch64_virtual_device but currently retired (e.g Intel HDA).
_snd_ctl_add_follower
get_device_system_crosststamp
snd_card_disconnect
snd_component_add
snd_ctl_add_vmaster_hook
snd_ctl_apply_vmaster_followers
snd_ctl_make_virtual_master
snd_ctl_remove
snd_ctl_sync_vmaster
snd_device_disconnect
snd_device_new
snd_pci_quirk_lookup
snd_pci_quirk_lookup_id
snd_pcm_hw_limit_rates
snd_pcm_set_sync
snd_pcm_suspend_all
snd_sgbuf_get_chunk_size
snd_pcm_std_chmaps

View File

@@ -21,6 +21,7 @@
alloc_netdev_mqs
__alloc_pages
__alloc_percpu
__alloc_percpu_gfp
__alloc_skb
alloc_skb_with_frags
alloc_workqueue
@@ -67,13 +68,18 @@
bitmap_release_region
__bitmap_set
__blk_alloc_disk
blk_bio_list_merge
blkcg_policy_register
blkcg_policy_unregister
blk_cleanup_disk
blkdev_get_by_dev
blkdev_issue_flush
blkdev_put
blk_execute_rq_nowait
blk_get_request
blk_mq_debugfs_rq_show
blk_mq_rq_cpu
blk_mq_run_hw_queue
blk_put_request
blk_queue_flag_clear
blk_queue_flag_set
@@ -86,13 +92,14 @@
blk_rq_map_user
blk_rq_map_user_iov
blk_rq_unmap_user
blk_stat_enable_accounting
blocking_notifier_call_chain
blocking_notifier_chain_register
blocking_notifier_chain_unregister
bpf_trace_run1
bpf_trace_run10
bpf_trace_run11
bpf_trace_run12
bpf_trace_run1
bpf_trace_run2
bpf_trace_run3
bpf_trace_run4
@@ -107,6 +114,7 @@
bus_register
bus_set_iommu
bus_unregister
cache_line_size
cancel_delayed_work
cancel_delayed_work_sync
cancel_work_sync
@@ -130,6 +138,7 @@
class_for_each_device
class_interface_unregister
__class_register
class_remove_file_ns
class_unregister
cleanup_srcu_struct
clear_page
@@ -816,6 +825,9 @@
edac_device_free_ctl_info
edac_device_handle_ce_count
edac_device_handle_ue_count
elevator_alloc
elv_register
elv_unregister
enable_irq
enable_percpu_irq
ether_setup
@@ -1264,6 +1276,7 @@
kstrtoull
kstrtoull_from_user
kthread_bind_mask
kthread_blkcg
kthread_cancel_delayed_work_sync
kthread_cancel_work_sync
kthread_create_on_node
@@ -1343,8 +1356,8 @@
mempool_free_slab
memremap
mem_section
memset64
memset
memset64
__memset_io
memstart_addr
memunmap
@@ -1416,8 +1429,8 @@
netlink_unicast
nla_memcpy
__nla_parse
nla_put_64bit
nla_put
nla_put_64bit
nla_strscpy
__nlmsg_put
no_llseek
@@ -1448,6 +1461,7 @@
of_clk_src_simple_get
of_count_phandle_with_args
of_cpu_node_to_id
of_css
of_devfreq_cooling_register
of_device_get_match_data
of_device_is_available
@@ -1702,6 +1716,7 @@
print_hex_dump
_printk
_printk_deferred
printk_timed_ratelimit
proc_create
proc_create_data
proc_create_single_data
@@ -1835,6 +1850,7 @@
regulator_enable
regulator_force_disable
regulator_get
regulator_get_drvdata
regulator_get_mode
regulator_get_voltage
regulator_get_voltage_rdev
@@ -1918,6 +1934,16 @@
rtnl_unicast
rtnl_unlock
runqueues
sbitmap_add_wait_queue
sbitmap_any_bit_set
sbitmap_del_wait_queue
sbitmap_init_node
sbitmap_queue_clear
__sbitmap_queue_get
sbitmap_queue_init_node
sbitmap_queue_min_shallow_depth
sbitmap_queue_resize
sbitmap_queue_show
scatterwalk_ffwd
scatterwalk_map_and_copy
sched_clock
@@ -1973,6 +1999,8 @@
send_sig_info
seq_buf_printf
seq_hex_dump
seq_list_next
seq_list_start
seq_lseek
seq_open
seq_printf
@@ -2259,6 +2287,7 @@
thermal_zone_of_sensor_unregister
tick_nohz_get_sleep_length
time64_to_tm
timer_reduce
topology_clear_scale_freq_source
topology_set_thermal_pressure
topology_update_done
@@ -2311,12 +2340,19 @@
__traceiter_android_vh_logbuf
__traceiter_android_vh_logbuf_pr_cont
__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
__traceiter_android_vh_mmc_gpio_cd_irqt
__traceiter_android_vh_scheduler_tick
__traceiter_android_vh_sdhci_get_cd
__traceiter_android_vh_sd_update_bus_speed_mode
__traceiter_android_vh_show_resume_epoch_val
__traceiter_android_vh_show_suspend_epoch_val
__traceiter_android_vh_shrink_slab_bypass
__traceiter_android_vh_try_to_unmap_one
__traceiter_android_vh_ufs_check_int_errors
__traceiter_android_vh_ufs_clock_scaling
__traceiter_android_vh_ufs_compl_command
__traceiter_android_vh_ufs_prepare_command
__traceiter_android_vh_ufs_send_command
@@ -2324,10 +2360,13 @@
__traceiter_android_vh_ufs_send_uic_command
__traceiter_android_vh_ufs_update_sdev
__traceiter_android_vh_update_topology_flags_workfn
__traceiter_block_rq_insert
__traceiter_cpu_frequency_limits
__traceiter_dwc3_complete_trb
__traceiter_dwc3_ctrl_req
__traceiter_dwc3_event
__traceiter_dwc3_readl
__traceiter_dwc3_writel
__traceiter_gpu_mem_total
__traceiter_ipi_entry
__traceiter_ipi_raise
@@ -2403,15 +2442,22 @@
__tracepoint_android_vh_logbuf
__tracepoint_android_vh_logbuf_pr_cont
__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
__tracepoint_android_vh_mmc_gpio_cd_irqt
__tracepoint_android_vh_printk_hotplug
__tracepoint_android_vh_rproc_recovery
__tracepoint_android_vh_scheduler_tick
__tracepoint_android_vh_sdhci_get_cd
__tracepoint_android_vh_sd_update_bus_speed_mode
__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_ufs_check_int_errors
__tracepoint_android_vh_ufs_clock_scaling
__tracepoint_android_vh_ufs_compl_command
__tracepoint_android_vh_ufs_prepare_command
__tracepoint_android_vh_ufs_send_command
@@ -2420,24 +2466,30 @@
__tracepoint_android_vh_ufs_update_sdev
__tracepoint_android_vh_update_topology_flags_workfn
__tracepoint_binder_transaction_received
__tracepoint_block_rq_insert
__tracepoint_cpu_frequency_limits
__tracepoint_dwc3_complete_trb
__tracepoint_dwc3_ctrl_req
__tracepoint_dwc3_event
__tracepoint_dwc3_readl
__tracepoint_dwc3_writel
__tracepoint_gpu_mem_total
__tracepoint_ipi_entry
__tracepoint_ipi_raise
__tracepoint_irq_handler_entry
__tracepoint_mmap_lock_acquire_returned
__tracepoint_mmap_lock_released
__tracepoint_mmap_lock_start_locking
__tracepoint_usb_gadget_connect
__tracepoint_usb_gadget_disconnect
tracepoint_probe_register
tracepoint_probe_register_prio
tracepoint_probe_unregister
__tracepoint_rwmmio_read
__tracepoint_rwmmio_write
__tracepoint_sched_overutilized_tp
__tracepoint_sched_switch
__tracepoint_suspend_resume
__tracepoint_usb_gadget_connect
__tracepoint_usb_gadget_disconnect
trace_print_array_seq
trace_print_flags_seq
trace_print_hex_seq
@@ -2469,6 +2521,7 @@
ucsi_destroy
ucsi_get_drvdata
ucsi_register
ucsi_send_command
ucsi_set_drvdata
ucsi_unregister
__udelay

View File

@@ -4,6 +4,7 @@
# required by touch module
proc_mkdir_data
proc_create_seq_private
power_supply_is_system_supplied
# required by aw8697-haptic.ko
devm_gpio_free
@@ -62,6 +63,40 @@
mempool_resize
mempool_alloc_pages
mempool_free_pages
blk_pm_runtime_init
scsi_remove_device
kobject_get
__traceiter_android_vh_ufs_update_sdev
__tracepoint_android_vh_ufs_mcq_handler
__tracepoint_android_vh_ufs_mcq_print_trs
__tracepoint_android_vh_ufs_mcq_config
__tracepoint_android_vh_ufs_mcq_max_tag
__tracepoint_android_vh_ufs_mcq_hba_capabilities
__tracepoint_android_vh_ufs_mcq_clear_pending
__tracepoint_android_vh_ufs_mcq_abort
__tracepoint_android_vh_ufs_mcq_map_tag
__tracepoint_android_vh_ufs_mcq_make_hba_operational
__tracepoint_android_vh_ufs_use_mcq_hooks
__tracepoint_android_vh_ufs_mcq_get_outstanding_reqs
__tracepoint_android_vh_ufs_mcq_clear_cmd
__tracepoint_android_vh_ufs_mcq_send_command
__tracepoint_android_vh_ufs_mcq_set_sqid
__tracepoint_android_vh_ufs_mcq_has_oustanding_reqs
__traceiter_android_vh_ufs_mcq_handler
__traceiter_android_vh_ufs_mcq_print_trs
__traceiter_android_vh_ufs_mcq_config
__traceiter_android_vh_ufs_mcq_max_tag
__traceiter_android_vh_ufs_mcq_hba_capabilities
__traceiter_android_vh_ufs_mcq_clear_pending
__traceiter_android_vh_ufs_mcq_abort
__traceiter_android_vh_ufs_mcq_map_tag
__traceiter_android_vh_ufs_mcq_make_hba_operational
__traceiter_android_vh_ufs_use_mcq_hooks
__traceiter_android_vh_ufs_mcq_get_outstanding_reqs
__traceiter_android_vh_ufs_mcq_clear_cmd
__traceiter_android_vh_ufs_mcq_send_command
__traceiter_android_vh_ufs_mcq_set_sqid
__traceiter_android_vh_ufs_mcq_has_oustanding_reqs
#required by cs35l41 module
regmap_raw_write_async
@@ -122,14 +157,28 @@
simple_strtoul
sync_blockdev
wait_for_device_probe
blk_mq_alloc_sq_tag_set
#required by millet.ko
__traceiter_android_vh_binder_wait_for_work
__tracepoint_android_vh_binder_wait_for_work
__traceiter_android_vh_do_send_sig_info
__traceiter_android_vh_binder_preset
__traceiter_android_vh_binder_trans
__traceiter_android_vh_binder_reply
__traceiter_android_vh_binder_alloc_new_buf_locked
__tracepoint_android_vh_do_send_sig_info
__tracepoint_android_vh_binder_preset
__tracepoint_android_vh_binder_trans
__tracepoint_android_vh_binder_reply
__tracepoint_android_vh_binder_alloc_new_buf_locked
#required by mi_sched.ko
__traceiter_android_vh_free_task
__tracepoint_android_vh_free_task
__traceiter_android_vh_scheduler_tick
__tracepoint_android_vh_scheduler_tick
jiffies_64
#required by migt.ko
@@ -139,6 +188,8 @@
__tracepoint_android_rvh_after_enqueue_task
__tracepoint_android_rvh_after_dequeue_task
__tracepoint_android_vh_map_util_freq
__traceiter_android_vh_map_util_freq_new
__tracepoint_android_vh_map_util_freq_new
#required by turbo.ko
@@ -152,10 +203,15 @@
#required by pm8941-pwrkey.ko module
console_printk
console_verbose
#required by binderinfo.ko module
__traceiter_android_vh_binder_transaction_init
__tracepoint_android_vh_binder_transaction_init
__traceiter_android_vh_binder_print_transaction_info
__tracepoint_android_vh_binder_print_transaction_info
__traceiter_binder_txn_latency_free
__tracepoint_binder_txn_latency_free
#required by reclaim module
@@ -167,8 +223,41 @@
#extend_reclaim.ko
##required by xm_power_debug.ko module
#required by xm_power_debug.ko module
wakeup_sources_read_lock
wakeup_sources_read_unlock
wakeup_sources_walk_start
wakeup_sources_walk_next
#required by swinfo.ko module
proc_set_size
#required by msm_rtb.ko module
__tracepoint_rwmmio_read
__traceiter_rwmmio_read
__tracepoint_rwmmio_write
__traceiter_rwmmio_write
__tracepoint_irq_handler_entry
__traceiter_irq_handler_entry
#required by msm_rtb.ko module
phy_resolve_aneg_linkmode
#required by metis.ko module
__traceiter_android_vh_rwsem_read_wait_start
__traceiter_android_vh_rwsem_write_wait_start
__traceiter_android_vh_mutex_wait_start
__traceiter_android_vh_alter_mutex_list_add
__traceiter_android_rvh_cpuset_fork
__traceiter_android_vh_sched_setaffinity_early
__traceiter_android_rvh_set_cpus_allowed_comm
__traceiter_android_rvh_dequeue_task
__tracepoint_android_vh_rwsem_read_wait_start
__tracepoint_android_vh_rwsem_write_wait_start
__tracepoint_android_vh_mutex_wait_start
__tracepoint_android_vh_alter_mutex_list_add
__tracepoint_android_rvh_cpuset_fork
__tracepoint_android_vh_sched_setaffinity_early
__tracepoint_android_rvh_set_cpus_allowed_comm
__tracepoint_android_rvh_dequeue_task
cpuset_cpus_allowed

View File

@@ -1 +0,0 @@
include ../arm64/OWNERS

View File

@@ -10,6 +10,7 @@ config ARM64
select ACPI_SPCR_TABLE if ACPI
select ACPI_PPTT if ACPI
select ARCH_HAS_DEBUG_WX
select ARCH_BINFMT_ELF_EXTRA_PHDRS
select ARCH_BINFMT_ELF_STATE
select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION
select ARCH_ENABLE_MEMORY_HOTPLUG

View File

@@ -1,4 +0,0 @@
per-file crypto/**=file:/crypto/OWNERS
per-file {include,kernel,kvm,lib}/**=mzyngier@google.com,willdeacon@google.com
per-file mm/**=file:/mm/OWNERS
per-file net/**=file:/net/OWNERS

View File

@@ -538,6 +538,7 @@ CONFIG_COMMON_CLK_SCPI=y
CONFIG_HWSPINLOCK=y
# CONFIG_SUN50I_ERRATUM_UNKNOWN1 is not set
CONFIG_MAILBOX=y
CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y
CONFIG_REMOTEPROC=y
CONFIG_REMOTEPROC_CDEV=y
CONFIG_RPMSG_CHAR=y

View File

@@ -327,10 +327,27 @@ static inline unsigned long host_s2_pgtable_pages(void)
#define KVM_FFA_MBOX_NR_PAGES 1
/*
* Maximum number of consitutents allowed in a descriptor. This number is
* arbitrary, see comment below on SG_MAX_SEGMENTS in hyp_ffa_proxy_pages().
*/
#define KVM_FFA_MAX_NR_CONSTITUENTS 4096
static inline unsigned long hyp_ffa_proxy_pages(void)
{
size_t desc_max;
/*
* SG_MAX_SEGMENTS is supposed to bound the number of elements in an
* sglist, which should match the number of consituents in the
* corresponding FFA descriptor. As such, the EL2 buffer needs to be
* large enough to hold a descriptor with SG_MAX_SEGMENTS consituents
* at least. But the kernel's DMA code doesn't enforce the limit, and
* it is sometimes abused, so let's allow larger descriptors and hope
* for the best.
*/
BUILD_BUG_ON(KVM_FFA_MAX_NR_CONSTITUENTS < SG_MAX_SEGMENTS);
/*
* The hypervisor FFA proxy needs enough memory to buffer a fragmented
* descriptor returned from EL3 in response to a RETRIEVE_REQ call.
@@ -338,7 +355,7 @@ static inline unsigned long hyp_ffa_proxy_pages(void)
desc_max = sizeof(struct ffa_mem_region) +
sizeof(struct ffa_mem_region_attributes) +
sizeof(struct ffa_composite_mem_region) +
SG_MAX_SEGMENTS * sizeof(struct ffa_mem_region_addr_range);
KVM_FFA_MAX_NR_CONSTITUENTS * sizeof(struct ffa_mem_region_addr_range);
/* Plus a page each for the hypervisor's RX and TX mailboxes. */
return (2 * KVM_FFA_MBOX_NR_PAGES) + DIV_ROUND_UP(desc_max, PAGE_SIZE);

View File

@@ -11,6 +11,7 @@
#define MTE_TAG_SHIFT 56
#define MTE_TAG_SIZE 4
#define MTE_TAG_MASK GENMASK((MTE_TAG_SHIFT + (MTE_TAG_SIZE - 1)), MTE_TAG_SHIFT)
#define MTE_PAGE_TAG_STORAGE (MTE_GRANULES_PER_PAGE * MTE_TAG_SIZE / 8)
#define __MTE_PREAMBLE ARM64_ASM_PREAMBLE ".arch_extension memtag\n"

View File

@@ -62,6 +62,7 @@ obj-$(CONFIG_ARM64_ACPI_PARKING_PROTOCOL) += acpi_parking_protocol.o
obj-$(CONFIG_PARAVIRT) += paravirt.o
obj-$(CONFIG_RANDOMIZE_BASE) += kaslr.o
obj-$(CONFIG_HIBERNATION) += hibernate.o hibernate-asm.o
obj-$(CONFIG_ELF_CORE) += elfcore.o
obj-$(CONFIG_KEXEC_CORE) += machine_kexec.o relocate_kernel.o \
cpu-reset.o
obj-$(CONFIG_KEXEC_FILE) += machine_kexec_file.o kexec_image.o

View File

@@ -59,6 +59,7 @@ struct insn_emulation {
static LIST_HEAD(insn_emulation);
static int nr_insn_emulated __initdata;
static DEFINE_RAW_SPINLOCK(insn_emulation_lock);
static DEFINE_MUTEX(insn_emulation_mutex);
static void register_emulation_hooks(struct insn_emulation_ops *ops)
{
@@ -207,10 +208,10 @@ static int emulation_proc_handler(struct ctl_table *table, int write,
loff_t *ppos)
{
int ret = 0;
struct insn_emulation *insn = (struct insn_emulation *) table->data;
struct insn_emulation *insn = container_of(table->data, struct insn_emulation, current_mode);
enum insn_emulation_mode prev_mode = insn->current_mode;
table->data = &insn->current_mode;
mutex_lock(&insn_emulation_mutex);
ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
if (ret || !write || prev_mode == insn->current_mode)
@@ -223,7 +224,7 @@ static int emulation_proc_handler(struct ctl_table *table, int write,
update_insn_emulation_mode(insn, INSN_UNDEF);
}
ret:
table->data = insn;
mutex_unlock(&insn_emulation_mutex);
return ret;
}
@@ -247,7 +248,7 @@ static void __init register_insn_emulation_sysctl(void)
sysctl->maxlen = sizeof(int);
sysctl->procname = insn->ops->name;
sysctl->data = insn;
sysctl->data = &insn->current_mode;
sysctl->extra1 = &insn->min;
sysctl->extra2 = &insn->max;
sysctl->proc_handler = emulation_proc_handler;

139
arch/arm64/kernel/elfcore.c Normal file
View File

@@ -0,0 +1,139 @@
// SPDX-License-Identifier: GPL-2.0-only
#include <linux/coredump.h>
#include <linux/elfcore.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <asm/cpufeature.h>
#include <asm/mte.h>
#define for_each_mte_vma(tsk, vma) \
if (system_supports_mte()) \
for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \
if (vma->vm_flags & VM_MTE)
static unsigned long mte_vma_tag_dump_size(struct vm_area_struct *vma)
{
if (vma->vm_flags & VM_DONTDUMP)
return 0;
return vma_pages(vma) * MTE_PAGE_TAG_STORAGE;
}
/* Derived from dump_user_range(); start/end must be page-aligned */
static int mte_dump_tag_range(struct coredump_params *cprm,
unsigned long start, unsigned long end)
{
int ret = 1;
unsigned long addr;
void *tags = NULL;
for (addr = start; addr < end; addr += PAGE_SIZE) {
struct page *page = get_dump_page(addr);
/*
* get_dump_page() returns NULL when encountering an empty
* page table entry that would otherwise have been filled with
* the zero page. Skip the equivalent tag dump which would
* have been all zeros.
*/
if (!page) {
dump_skip(cprm, MTE_PAGE_TAG_STORAGE);
continue;
}
/*
* Pages mapped in user space as !pte_access_permitted() (e.g.
* PROT_EXEC only) may not have the PG_mte_tagged flag set.
*/
if (!test_bit(PG_mte_tagged, &page->flags)) {
put_page(page);
dump_skip(cprm, MTE_PAGE_TAG_STORAGE);
continue;
}
if (!tags) {
tags = mte_allocate_tag_storage();
if (!tags) {
put_page(page);
ret = 0;
break;
}
}
mte_save_page_tags(page_address(page), tags);
put_page(page);
if (!dump_emit(cprm, tags, MTE_PAGE_TAG_STORAGE)) {
mte_free_tag_storage(tags);
ret = 0;
break;
}
}
if (tags)
mte_free_tag_storage(tags);
return ret;
}
Elf_Half elf_core_extra_phdrs(void)
{
struct vm_area_struct *vma;
int vma_count = 0;
for_each_mte_vma(current, vma)
vma_count++;
return vma_count;
}
int elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset)
{
struct vm_area_struct *vma;
for_each_mte_vma(current, vma) {
struct elf_phdr phdr;
phdr.p_type = PT_AARCH64_MEMTAG_MTE;
phdr.p_offset = offset;
phdr.p_vaddr = vma->vm_start;
phdr.p_paddr = 0;
phdr.p_filesz = mte_vma_tag_dump_size(vma);
phdr.p_memsz = vma->vm_end - vma->vm_start;
offset += phdr.p_filesz;
phdr.p_flags = 0;
phdr.p_align = 0;
if (!dump_emit(cprm, &phdr, sizeof(phdr)))
return 0;
}
return 1;
}
size_t elf_core_extra_data_size(void)
{
struct vm_area_struct *vma;
size_t data_size = 0;
for_each_mte_vma(current, vma)
data_size += mte_vma_tag_dump_size(vma);
return data_size;
}
int elf_core_write_extra_data(struct coredump_params *cprm)
{
struct vm_area_struct *vma;
for_each_mte_vma(current, vma) {
if (vma->vm_flags & VM_DONTDUMP)
continue;
if (!mte_dump_tag_range(cprm, vma->vm_start, vma->vm_end))
return 0;
}
return 1;
}

View File

@@ -558,6 +558,7 @@ out:
put_task_stack(p);
return ret;
}
EXPORT_SYMBOL_GPL(get_wchan);
unsigned long arch_align_stack(unsigned long sp)
{

View File

@@ -324,7 +324,7 @@ static int ffa_host_share_ranges(struct ffa_mem_region_addr_range *ranges,
int ret = 0;
if (nshared != nranges) {
WARN_ON(__ffa_host_unshare_ranges(ranges, nshared));
WARN_ON(__ffa_host_unshare_ranges(ranges, nshared) != nshared);
ret = FFA_RET_DENIED;
}
@@ -338,7 +338,7 @@ static int ffa_host_unshare_ranges(struct ffa_mem_region_addr_range *ranges,
int ret = 0;
if (nunshared != nranges) {
WARN_ON(__ffa_host_share_ranges(ranges, nunshared));
WARN_ON(__ffa_host_share_ranges(ranges, nunshared) != nunshared);
ret = FFA_RET_DENIED;
}

View File

@@ -600,6 +600,25 @@ static int check_shadow_size(int nr_vcpus, size_t shadow_size)
return 0;
}
static void drain_shadow_vcpus(struct shadow_vcpu_state *shadow_vcpus,
unsigned int nr_vcpus,
struct kvm_hyp_memcache *mc)
{
int i;
for (i = 0; i < nr_vcpus; i++) {
struct kvm_vcpu *shadow_vcpu = &shadow_vcpus[i].vcpu;
struct kvm_hyp_memcache *vcpu_mc = &shadow_vcpu->arch.pkvm_memcache;
void *addr;
while (vcpu_mc->nr_pages) {
addr = pop_hyp_memcache(vcpu_mc, hyp_phys_to_virt);
push_hyp_memcache(mc, addr, hyp_virt_to_phys);
WARN_ON(__pkvm_hyp_donate_host(hyp_virt_to_pfn(addr), 1));
}
}
}
/*
* Initialize the shadow copy of the protected VM state using the memory
* donated by the host.
@@ -753,6 +772,7 @@ int __pkvm_teardown_shadow(int shadow_handle)
/* Reclaim guest pages, and page-table pages */
mc = &vm->host_kvm->arch.pkvm.teardown_mc;
reclaim_guest_pages(vm, mc);
drain_shadow_vcpus(vm->shadow_vcpus, vm->created_vcpus, mc);
unpin_host_vcpus(vm->shadow_vcpus, vm->created_vcpus);
/* Push the metadata pages to the teardown memcache */

View File

@@ -134,7 +134,7 @@ SYM_FUNC_END(mte_copy_tags_to_user)
/*
* Save the tags in a page
* x0 - page address
* x1 - tag storage
* x1 - tag storage, MTE_PAGE_TAG_STORAGE bytes
*/
SYM_FUNC_START(mte_save_page_tags)
multitag_transfer_size x7, x5
@@ -158,7 +158,7 @@ SYM_FUNC_END(mte_save_page_tags)
/*
* Restore the tags in a page
* x0 - page address
* x1 - tag storage
* x1 - tag storage, MTE_PAGE_TAG_STORAGE bytes
*/
SYM_FUNC_START(mte_restore_page_tags)
multitag_transfer_size x7, x5

View File

@@ -12,7 +12,7 @@ static DEFINE_XARRAY(mte_pages);
void *mte_allocate_tag_storage(void)
{
/* tags granule is 16 bytes, 2 tags stored per byte */
return kmalloc(PAGE_SIZE / 16 / 2, GFP_KERNEL);
return kmalloc(MTE_PAGE_TAG_STORAGE, GFP_KERNEL);
}
void mte_free_tag_storage(char *storage)

View File

@@ -8,6 +8,7 @@ menu "Processor type and features"
config IA64
bool
select ARCH_BINFMT_ELF_EXTRA_PHDRS
select ARCH_HAS_DMA_MARK_CLEAN
select ARCH_HAS_STRNCPY_FROM_USER
select ARCH_HAS_STRNLEN_USER

View File

@@ -1,3 +0,0 @@
per-file crypto/**=file:/crypto/OWNERS
per-file mm/**=file:/mm/OWNERS
per-file net/**=file:/net/OWNERS

View File

@@ -9,6 +9,7 @@ endmenu
config UML_X86
def_bool y
select GENERIC_FIND_FIRST_BIT
select ARCH_BINFMT_ELF_EXTRA_PHDRS if X86_32
config 64BIT
bool "64-bit kernel" if "$(SUBARCH)" = "x86"

View File

@@ -1,2 +0,0 @@
bvanassche@google.com
jaegeuk@google.com

View File

@@ -13,10 +13,12 @@ ABI_DEFINITION=android/abi_gki_aarch64.xml
KMI_SYMBOL_LIST=android/abi_gki_aarch64
ADDITIONAL_KMI_SYMBOL_LISTS="
android/abi_gki_aarch64_virtual_device
android/abi_gki_aarch64_virtual_device_removed
android/abi_gki_aarch64_db845c
android/abi_gki_aarch64_exynos
android/abi_gki_aarch64_exynosauto
android/abi_gki_aarch64_fips140
android/abi_gki_aarch64_galaxy
android/abi_gki_aarch64_honor
android/abi_gki_aarch64_imx
android/abi_gki_aarch64_pixel

View File

@@ -1 +0,0 @@
ardb@google.com

View File

@@ -1,6 +0,0 @@
per-file base/**=gregkh@google.com,saravanak@google.com
per-file block/**=akailash@google.com
per-file md/**=akailash@google.com,paullawrence@google.com
per-file net/**=file:/net/OWNERS
per-file scsi/**=bvanassche@google.com,jaegeuk@google.com
per-file {tty,usb}/**=gregkh@google.com

View File

@@ -491,6 +491,11 @@ static void binder_inc_node_tmpref_ilocked(struct binder_node *node);
static bool binder_has_work_ilocked(struct binder_thread *thread,
bool do_proc_work)
{
int ret = 0;
trace_android_vh_binder_has_work_ilocked(thread, do_proc_work, &ret);
if (ret)
return true;
return thread->process_todo ||
thread->looper_need_return ||
(do_proc_work &&
@@ -657,8 +662,13 @@ static void binder_do_set_priority(struct binder_thread *thread,
bool has_cap_nice;
unsigned int policy = desired->sched_policy;
if (task->policy == policy && task->normal_prio == desired->prio)
if (task->policy == policy && task->normal_prio == desired->prio) {
spin_lock(&thread->prio_lock);
if (thread->prio_state == BINDER_PRIO_PENDING)
thread->prio_state = BINDER_PRIO_SET;
spin_unlock(&thread->prio_lock);
return;
}
has_cap_nice = has_capability_noaudit(task, CAP_SYS_NICE);
@@ -1241,6 +1251,7 @@ static struct binder_ref *binder_get_ref_for_node_olocked(
"%d new ref %d desc %d for node %d\n",
proc->pid, new_ref->data.debug_id, new_ref->data.desc,
node->debug_id);
trace_android_vh_binder_new_ref(proc->tsk, new_ref->data.desc, new_ref->node->debug_id);
binder_node_unlock(node);
return new_ref;
}
@@ -1408,6 +1419,7 @@ err_no_ref:
*/
static void binder_free_ref(struct binder_ref *ref)
{
trace_android_vh_binder_del_ref(ref->proc ? ref->proc->tsk : 0, ref->data.desc);
if (ref->node)
binder_free_node(ref->node);
kfree(ref->death);
@@ -1512,6 +1524,18 @@ static int binder_inc_ref_for_node(struct binder_proc *proc,
}
ret = binder_inc_ref_olocked(ref, strong, target_list);
*rdata = ref->data;
if (ret && ref == new_ref) {
/*
* Cleanup the failed reference here as the target
* could now be dead and have already released its
* references by now. Calling on the new reference
* with strong=0 and a tmp_refs will not decrement
* the node. The new_ref gets kfree'd below.
*/
binder_cleanup_ref_olocked(new_ref);
ref = NULL;
}
binder_proc_unlock(proc);
if (new_ref && ref != new_ref)
/*
@@ -2522,6 +2546,56 @@ static int binder_fixup_parent(struct binder_transaction *t,
return 0;
}
/**
* binder_can_update_transaction() - Can a txn be superseded by an updated one?
* @t1: the pending async txn in the frozen process
* @t2: the new async txn to supersede the outdated pending one
*
* Return: true if t2 can supersede t1
* false if t2 can not supersede t1
*/
static bool binder_can_update_transaction(struct binder_transaction *t1,
struct binder_transaction *t2)
{
if ((t1->flags & t2->flags & (TF_ONE_WAY | TF_UPDATE_TXN)) !=
(TF_ONE_WAY | TF_UPDATE_TXN) || !t1->to_proc || !t2->to_proc)
return false;
if (t1->to_proc->tsk == t2->to_proc->tsk && t1->code == t2->code &&
t1->flags == t2->flags && t1->buffer->pid == t2->buffer->pid &&
t1->buffer->target_node->ptr == t2->buffer->target_node->ptr &&
t1->buffer->target_node->cookie == t2->buffer->target_node->cookie)
return true;
return false;
}
/**
* binder_find_outdated_transaction_ilocked() - Find the outdated transaction
* @t: new async transaction
* @target_list: list to find outdated transaction
*
* Return: the outdated transaction if found
* NULL if no outdated transacton can be found
*
* Requires the proc->inner_lock to be held.
*/
static struct binder_transaction *
binder_find_outdated_transaction_ilocked(struct binder_transaction *t,
struct list_head *target_list)
{
struct binder_work *w;
list_for_each_entry(w, target_list, entry) {
struct binder_transaction *t_queued;
if (w->type != BINDER_WORK_TRANSACTION)
continue;
t_queued = container_of(w, struct binder_transaction, work);
if (binder_can_update_transaction(t_queued, t))
return t_queued;
}
return NULL;
}
/**
* binder_proc_transaction() - sends a transaction to a process and wakes it up
* @t: transaction to send
@@ -2547,6 +2621,8 @@ static int binder_proc_transaction(struct binder_transaction *t,
struct binder_node *node = t->buffer->target_node;
bool oneway = !!(t->flags & TF_ONE_WAY);
bool pending_async = false;
bool skip = false;
struct binder_transaction *t_outdated = NULL;
BUG_ON(!node);
binder_node_lock(node);
@@ -2572,18 +2648,37 @@ static int binder_proc_transaction(struct binder_transaction *t,
return proc->is_frozen ? BR_FROZEN_REPLY : BR_DEAD_REPLY;
}
if (!thread && !pending_async)
trace_android_vh_binder_proc_transaction_entry(proc, t,
&thread, node->debug_id, pending_async, !oneway, &skip);
if (!thread && !pending_async && !skip)
thread = binder_select_thread_ilocked(proc);
trace_android_vh_binder_proc_transaction(current, proc->tsk,
thread ? thread->task : 0, node->debug_id, t->code, pending_async);
if (thread) {
binder_transaction_priority(thread, t, node);
binder_enqueue_thread_work_ilocked(thread, &t->work);
} else if (!pending_async) {
binder_enqueue_work_ilocked(&t->work, &proc->todo);
} else {
if ((t->flags & TF_UPDATE_TXN) && proc->is_frozen) {
t_outdated = binder_find_outdated_transaction_ilocked(t,
&node->async_todo);
if (t_outdated) {
binder_debug(BINDER_DEBUG_TRANSACTION,
"txn %d supersedes %d\n",
t->debug_id, t_outdated->debug_id);
list_del_init(&t_outdated->work.entry);
proc->outstanding_txns--;
}
}
binder_enqueue_work_ilocked(&t->work, &node->async_todo);
}
trace_android_vh_binder_proc_transaction_finish(proc, t,
thread ? thread->task : NULL, pending_async, !oneway);
if (!pending_async)
binder_wakeup_thread_ilocked(proc, thread, !oneway /* sync */);
@@ -2591,6 +2686,22 @@ static int binder_proc_transaction(struct binder_transaction *t,
binder_inner_proc_unlock(proc);
binder_node_unlock(node);
/*
* To reduce potential contention, free the outdated transaction and
* buffer after releasing the locks.
*/
if (t_outdated) {
struct binder_buffer *buffer = t_outdated->buffer;
t_outdated->buffer = NULL;
buffer->transaction = NULL;
trace_binder_transaction_update_buffer_release(buffer);
binder_transaction_buffer_release(proc, NULL, buffer, 0, 0);
binder_alloc_free_buf(&proc->alloc, buffer);
kfree(t_outdated);
binder_stats_deleted(BINDER_STAT_TRANSACTION);
}
return 0;
}
@@ -2733,6 +2844,7 @@ static void binder_transaction(struct binder_proc *proc,
target_proc = target_thread->proc;
target_proc->tmp_ref++;
binder_inner_proc_unlock(target_thread->proc);
trace_android_vh_binder_reply(target_proc, proc, thread, tr);
} else {
if (tr->target.handle) {
struct binder_ref *ref;
@@ -2791,6 +2903,7 @@ static void binder_transaction(struct binder_proc *proc,
return_error_line = __LINE__;
goto err_invalid_target_handle;
}
trace_android_vh_binder_trans(target_proc, proc, thread, tr);
if (security_binder_transaction(proc->cred,
target_proc->cred) < 0) {
return_error = BR_FAILED_REPLY;
@@ -3710,6 +3823,7 @@ static int binder_thread_write(struct binder_proc *proc,
}
thread->looper |= BINDER_LOOPER_STATE_REGISTERED;
binder_inner_proc_unlock(proc);
trace_android_vh_binder_looper_state_registered(thread, proc);
break;
case BC_ENTER_LOOPER:
binder_debug(BINDER_DEBUG_THREADS,
@@ -4116,6 +4230,10 @@ retry:
size_t trsize = sizeof(*trd);
binder_inner_proc_lock(proc);
trace_android_vh_binder_select_worklist_ilocked(&list, thread,
proc, wait_for_proc_work);
if (list)
goto skip;
if (!binder_worklist_empty_ilocked(&thread->todo))
list = &thread->todo;
else if (!binder_worklist_empty_ilocked(&proc->todo) &&
@@ -4129,11 +4247,12 @@ retry:
goto retry;
break;
}
skip:
if (end - ptr < sizeof(tr) + 4) {
binder_inner_proc_unlock(proc);
break;
}
trace_android_vh_binder_thread_read(&list, proc, thread);
w = binder_dequeue_work_head_ilocked(list);
if (binder_worklist_empty_ilocked(&thread->todo))
thread->process_todo = false;
@@ -4596,6 +4715,7 @@ static void binder_free_proc(struct binder_proc *proc)
put_task_struct(proc->tsk);
put_cred(proc->cred);
binder_stats_deleted(BINDER_STAT_PROC);
trace_android_vh_binder_free_proc(proc);
kfree(proc);
}
@@ -4694,6 +4814,7 @@ static int binder_thread_release(struct binder_proc *proc,
if (send_reply)
binder_send_failed_reply(send_reply, BR_DEAD_REPLY);
binder_release_work(proc, &thread->todo);
trace_android_vh_binder_thread_release(proc, thread);
binder_thread_dec_tmpref(thread);
return active_transactions;
}
@@ -4770,6 +4891,7 @@ static int binder_ioctl_write_read(struct file *filp,
if (!binder_worklist_empty_ilocked(&proc->todo))
binder_wakeup_proc_ilocked(proc);
binder_inner_proc_unlock(proc);
trace_android_vh_binder_read_done(proc, thread);
if (ret < 0) {
if (copy_to_user(ubuf, &bwr, sizeof(bwr)))
ret = -EFAULT;
@@ -5334,7 +5456,7 @@ static int binder_open(struct inode *nodp, struct file *filp)
}
hlist_add_head(&proc->proc_node, &binder_procs);
mutex_unlock(&binder_procs_lock);
trace_android_vh_binder_preset(&binder_procs, &binder_procs_lock);
if (binder_debugfs_dir_entry_proc && !existing_pid) {
char strbuf[11];
@@ -6283,5 +6405,6 @@ device_initcall(binder_init);
#define CREATE_TRACE_POINTS
#include "binder_trace.h"
EXPORT_TRACEPOINT_SYMBOL_GPL(binder_transaction_received);
EXPORT_TRACEPOINT_SYMBOL_GPL(binder_txn_latency_free);
MODULE_LICENSE("GPL v2");

View File

@@ -25,6 +25,7 @@
#include <linux/sizes.h>
#include "binder_alloc.h"
#include "binder_trace.h"
#include <trace/hooks/binder.h>
struct list_lru binder_alloc_lru;
@@ -421,6 +422,7 @@ static struct binder_buffer *binder_alloc_new_buf_locked(
alloc->pid, extra_buffers_size);
return ERR_PTR(-EINVAL);
}
trace_android_vh_binder_alloc_new_buf_locked(size, &alloc->free_async_space, is_async);
if (is_async &&
alloc->free_async_space < size + sizeof(struct binder_buffer)) {
binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC,

View File

@@ -335,6 +335,10 @@ DEFINE_EVENT(binder_buffer_class, binder_transaction_failed_buffer_release,
TP_PROTO(struct binder_buffer *buffer),
TP_ARGS(buffer));
DEFINE_EVENT(binder_buffer_class, binder_transaction_update_buffer_release,
TP_PROTO(struct binder_buffer *buffer),
TP_ARGS(buffer));
TRACE_EVENT(binder_update_page_range,
TP_PROTO(struct binder_alloc *alloc, bool allocate,
void __user *start, void __user *end),

View File

@@ -100,15 +100,18 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_restore_priority);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wakeup_ilocked);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_send_sig_info);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_futex_plist_add);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_sleep_start);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_start);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_finish);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_init);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_process_killed);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_start);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_finish);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_start);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_finish);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_start);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_finish);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_pelt_multiplier);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_show_task);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_enter);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_exit);
@@ -179,6 +182,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ttwu_cond);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule_bug);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_exec);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_map_util_freq);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_map_util_freq_new);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_em_cpu_energy);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_oops_enter);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_oops_exit);
@@ -229,6 +233,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_replace_next_task_fair);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sched_yield);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wait_for_work);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_binder_transaction);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_entry);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_select_worklist_ilocked);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_finish);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sync_txn_recvd);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_build_sched_domains);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn);
@@ -236,6 +243,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_balance_rt);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_pick_next_entity);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpufreq_transition);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_qos_add_request);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_qos_update_request);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_qos_remove_request);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_balance_anon_file_reclaim);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_show_max_freq);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_referenced_check_bypass);
@@ -265,12 +275,14 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_memory_nx);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_memory_rw);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_module_permit_before_init);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_module_permit_after_init);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_stat_runtime_rt);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_oom_check_panic);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_is_initialized);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_mmap_file);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_file_open);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_bpf_syscall);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_ptr_locked);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_by_task);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rto_next_cpu);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_is_cpu_allowed);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_get_nohz_timer_target);
@@ -298,6 +310,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_effective_cpu_util);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_report_bug);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_watchdog_timer_softlockup);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_freeze_todo);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_freeze_todo_logging);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_freeze_todo_unfrozen);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_die_kernel_fault);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sea);
@@ -307,6 +320,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_undefinstr);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_ptrauth_fault);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_panic_unhandled);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_arm64_serror_panic);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_vmpressure);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sha256);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_aes_expandkey);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_aes_encrypt);
@@ -328,6 +342,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kswapd_per_node);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_vendor_set);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_ep_action);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_synctype);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_suspend);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_connect);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_audio_usb_offload_disconnect);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_atomic_remove_fb);
@@ -341,6 +356,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_force_compatible_post);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_regmap_update);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_mutex_list_add);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_unlock_slowpath);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake_finish);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dma_buf_release);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_pass_input_event);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_check_status);
@@ -358,6 +374,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_udp_recvmsg);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_tcp_recvmsg_stat);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_scan_type);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_swappiness);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_comm);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_setaffinity_early);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_partial_init);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_cache_card_properties);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_print_transaction_info);
@@ -371,6 +389,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sd_update_bus_speed_mode);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_attach_sd);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sdhci_get_cd);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_gpio_cd_irqt);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_update_partition_status);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_sd_update_cmdline_timing);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_sd_update_dataline_timing);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cfg80211_set_context);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cfg80211_get_context);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_id_remove);
@@ -378,3 +399,27 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_css_offline);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_css_online);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_free);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_alloc);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpuset_fork);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_looper_state_registered);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_thread_read);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_free_proc);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_thread_release);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_has_work_ilocked);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_read_done);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_v2_resume);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_signal);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_attach_entity_load_avg);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_detach_entity_load_avg);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_avg);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_remove_entity_load_avg);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_blocked_fair);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_rt_rq_load_avg);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_alloc_new_buf_locked);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_reply);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_trans);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_preset);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_memcg_scan_type);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_thermal_stats);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_new_ref);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_del_ref);

View File

@@ -167,8 +167,11 @@ void topology_set_thermal_pressure(const struct cpumask *cpus,
{
int cpu;
for_each_cpu(cpu, cpus)
for_each_cpu(cpu, cpus) {
WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure);
trace_android_rvh_update_thermal_stats(cpu);
}
}
EXPORT_SYMBOL_GPL(topology_set_thermal_pressure);

View File

@@ -487,6 +487,16 @@ static void device_link_release_fn(struct work_struct *work)
pm_runtime_release_supplier(link, true);
/*
* If supplier_preactivated is set, the link has been dropped between
* the pm_runtime_get_suppliers() and pm_runtime_put_suppliers() calls
* in __driver_probe_device(). In that case, drop the supplier's
* PM-runtime usage counter to remove the reference taken by
* pm_runtime_get_suppliers().
*/
if (link->supplier_preactivated)
pm_runtime_put_noidle(link->supplier);
put_device(link->consumer);
put_device(link->supplier);
kfree(link);

View File

@@ -490,7 +490,7 @@ static int firmware_param_path_set(const char *val, const struct kernel_param *k
int i;
char *path, *end;
strcpy(strpath, val);
strscpy(strpath, val, sizeof(strpath));
/* Remove leading and trailing spaces from path */
path = strim(strpath);
for (i = 0; path && i < CUSTOM_FW_PATH_COUNT; i++) {
@@ -507,17 +507,30 @@ static int firmware_param_path_set(const char *val, const struct kernel_param *k
*end = '\0';
else {
/* end of the string reached and no other tockens ',' */
strncpy(fw_path_para[i], path, PATH_SIZE);
strscpy(fw_path_para[i], path, PATH_SIZE);
break;
}
strncpy(fw_path_para[i], path, PATH_SIZE);
strscpy(fw_path_para[i], path, PATH_SIZE);
path = ++end;
}
return 0;
}
static int firmware_param_path_get(char *buffer, const struct kernel_param *kp)
{
int count = 0, i;
for (i = 0; i < CUSTOM_FW_PATH_COUNT; i++) {
if (strlen(fw_path_para[i]) != 0)
count += scnprintf(buffer + count, PATH_SIZE, "%s%s", fw_path_para[i], ",");
}
buffer[count - 1] = '\0';
return count - 1;
}
/*
* Typical usage is that passing 'firmware_class.path=/vendor,/firwmare_mnt'
* from kernel command line because firmware_class is generally built in
@@ -527,8 +540,9 @@ static int firmware_param_path_set(const char *val, const struct kernel_param *k
static const struct kernel_param_ops firmware_param_ops = {
.set = firmware_param_path_set,
.get = firmware_param_path_get,
};
module_param_cb(path, &firmware_param_ops, NULL, 0200);
module_param_cb(path, &firmware_param_ops, NULL, 0644);
MODULE_PARM_DESC(path, "customized firmware image search path with a higher priority than default path");
static int

View File

@@ -1728,7 +1728,6 @@ void pm_runtime_get_suppliers(struct device *dev)
if (link->flags & DL_FLAG_PM_RUNTIME) {
link->supplier_preactivated = true;
pm_runtime_get_sync(link->supplier);
refcount_inc(&link->rpm_active);
}
device_links_read_unlock(idx);
@@ -1741,8 +1740,6 @@ void pm_runtime_get_suppliers(struct device *dev)
void pm_runtime_put_suppliers(struct device *dev)
{
struct device_link *link;
unsigned long flags;
bool put;
int idx;
idx = device_links_read_lock();
@@ -1751,12 +1748,7 @@ void pm_runtime_put_suppliers(struct device *dev)
device_links_read_lock_held())
if (link->supplier_preactivated) {
link->supplier_preactivated = false;
spin_lock_irqsave(&dev->power.lock, flags);
put = pm_runtime_status_suspended(dev) &&
refcount_dec_not_one(&link->rpm_active);
spin_unlock_irqrestore(&dev->power.lock, flags);
if (put)
pm_runtime_put(link->supplier);
pm_runtime_put(link->supplier);
}
device_links_read_unlock(idx);

View File

@@ -52,6 +52,11 @@ struct iommu_dma_cookie {
struct iommu_domain *fq_domain;
};
struct iommu_dma_cookie_ext {
struct iommu_dma_cookie cookie;
struct mutex mutex;
};
static DEFINE_STATIC_KEY_FALSE(iommu_deferred_attach_enabled);
bool iommu_dma_forcedac __read_mostly;
@@ -86,14 +91,15 @@ static inline size_t cookie_msi_granule(struct iommu_dma_cookie *cookie)
static struct iommu_dma_cookie *cookie_alloc(enum iommu_dma_cookie_type type)
{
struct iommu_dma_cookie *cookie;
struct iommu_dma_cookie_ext *cookie;
cookie = kzalloc(sizeof(*cookie), GFP_KERNEL);
if (cookie) {
INIT_LIST_HEAD(&cookie->msi_page_list);
cookie->type = type;
INIT_LIST_HEAD(&cookie->cookie.msi_page_list);
cookie->cookie.type = type;
mutex_init(&cookie->mutex);
}
return cookie;
return &cookie->cookie;
}
/**
@@ -363,8 +369,10 @@ static int iommu_dma_init_domain(struct iommu_domain *domain, dma_addr_t base,
dma_addr_t limit, struct device *dev)
{
struct iommu_dma_cookie *cookie = domain->iova_cookie;
struct iommu_dma_cookie_ext *cookie_ext;
unsigned long order, base_pfn;
struct iova_domain *iovad;
int ret;
if (!cookie || cookie->type != IOMMU_DMA_IOVA_COOKIE)
return -EINVAL;
@@ -388,14 +396,18 @@ static int iommu_dma_init_domain(struct iommu_domain *domain, dma_addr_t base,
}
/* start_pfn is always nonzero for an already-initialised domain */
cookie_ext = container_of(cookie, struct iommu_dma_cookie_ext, cookie);
mutex_lock(&cookie_ext->mutex);
if (iovad->start_pfn) {
if (1UL << order != iovad->granule ||
base_pfn != iovad->start_pfn) {
pr_warn("Incompatible range for DMA domain\n");
return -EFAULT;
ret = -EFAULT;
goto done_unlock;
}
return 0;
ret = 0;
goto done_unlock;
}
init_iova_domain(iovad, 1UL << order, base_pfn);
@@ -404,7 +416,11 @@ static int iommu_dma_init_domain(struct iommu_domain *domain, dma_addr_t base,
if (domain->type == IOMMU_DOMAIN_DMA_FQ && iommu_dma_init_fq(domain))
domain->type = IOMMU_DOMAIN_DMA;
return iova_reserve_iommu_regions(dev, domain);
ret = iova_reserve_iommu_regions(dev, domain);
done_unlock:
mutex_unlock(&cookie_ext->mutex);
return ret;
}
/*

View File

@@ -35,6 +35,7 @@
#include <linux/interrupt.h>
#include <linux/percpu.h>
#include <linux/slab.h>
#include <linux/syscore_ops.h>
#include <linux/irqchip.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/irqchip/arm-gic.h>
@@ -398,6 +399,27 @@ static void gic_handle_cascade_irq(struct irq_desc *desc)
chained_irq_exit(chip, desc);
}
#ifdef CONFIG_PM
void gic_v2_resume(void)
{
trace_android_vh_gic_v2_resume(gic_data_dist_base(&gic_data[0]), &gic_data[0].domain);
}
EXPORT_SYMBOL_GPL(gic_v2_resume);
static struct syscore_ops gic_v2_syscore_ops = {
.resume = gic_v2_resume,
};
static void gic_v2_syscore_init(void)
{
register_syscore_ops(&gic_v2_syscore_ops);
}
#else
static inline void gic_v2_syscore_init(void) { }
void gic_v2_resume(void) { }
#endif
static const struct irq_chip gic_chip = {
.irq_mask = gic_mask_irq,
.irq_unmask = gic_unmask_irq,
@@ -1241,6 +1263,8 @@ static int gic_init_bases(struct gic_chip_data *gic,
if (ret)
goto error;
gic_v2_syscore_init();
return 0;
error:

View File

@@ -1767,6 +1767,8 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
goto free_card;
}
trace_android_vh_mmc_update_partition_status(card);
/*
* Enable power_off_notification byte in the ext_csd register
*/

View File

@@ -1519,6 +1519,10 @@ retry:
*/
mmc_set_clock(host, mmc_sd_get_max_clock(card));
trace_android_vh_mmc_sd_update_cmdline_timing(card, &err);
if (err)
goto free_card;
/*
* Switch to wider bus (if supported).
*/
@@ -1530,6 +1534,10 @@ retry:
mmc_set_bus_width(host, MMC_BUS_WIDTH_4);
}
trace_android_vh_mmc_sd_update_dataline_timing(card, &err);
if (err)
goto free_card;
}
if (!oldcard) {

View File

@@ -271,6 +271,7 @@ static int usb_conn_probe(struct platform_device *pdev)
}
platform_set_drvdata(pdev, info);
device_set_wakeup_capable(&pdev->dev, true);
/* Perform initial detection */
usb_conn_queue_dwork(info, 0);
@@ -300,6 +301,14 @@ static int __maybe_unused usb_conn_suspend(struct device *dev)
{
struct usb_conn_info *info = dev_get_drvdata(dev);
if (device_may_wakeup(dev)) {
if (info->id_gpiod)
enable_irq_wake(info->id_irq);
if (info->vbus_gpiod)
enable_irq_wake(info->vbus_irq);
return 0;
}
if (info->id_gpiod)
disable_irq(info->id_irq);
if (info->vbus_gpiod)
@@ -314,6 +323,14 @@ static int __maybe_unused usb_conn_resume(struct device *dev)
{
struct usb_conn_info *info = dev_get_drvdata(dev);
if (device_may_wakeup(dev)) {
if (info->id_gpiod)
disable_irq_wake(info->id_irq);
if (info->vbus_gpiod)
disable_irq_wake(info->vbus_irq);
return 0;
}
pinctrl_pm_select_default_state(dev);
if (info->id_gpiod)

View File

@@ -156,8 +156,13 @@ static void __dwc3_set_mode(struct work_struct *work)
break;
}
/* For DRD host or device mode only */
if (dwc->desired_dr_role != DWC3_GCTL_PRTCAP_OTG) {
/*
* When current_dr_role is not set, there's no role switching.
* Only perform GCTL.CoreSoftReset when there's DRD role switching.
*/
if (dwc->current_dr_role && ((DWC3_IP_IS(DWC3) ||
DWC3_VER_IS_PRIOR(DWC31, 190A)) &&
dwc->desired_dr_role != DWC3_GCTL_PRTCAP_OTG)) {
reg = dwc3_readl(dwc->regs, DWC3_GCTL);
reg |= DWC3_GCTL_CORESOFTRESET;
dwc3_writel(dwc->regs, DWC3_GCTL, reg);

View File

@@ -2464,7 +2464,9 @@ static int dwc3_gadget_pullup(struct usb_gadget *g, int is_on)
int ret;
is_on = !!is_on;
dwc->softconnect = is_on;
/*
* Per databook, when we want to stop the gadget, if a control transfer
* is still in process, complete it and get the core into setup phase.
@@ -2500,6 +2502,9 @@ static int dwc3_gadget_pullup(struct usb_gadget *g, int is_on)
return 0;
}
if (dwc->pullups_connected == is_on)
return 0;
/*
* Synchronize and disable any further event handling while controller
* is being enabled/disabled.

View File

@@ -36,6 +36,9 @@ config COMPAT_BINFMT_ELF
config ARCH_BINFMT_ELF_STATE
bool
config ARCH_BINFMT_ELF_EXTRA_PHDRS
bool
config ARCH_HAVE_ELF_PROT
bool

View File

@@ -1 +0,0 @@
per-file {crypto,verity}/**=ebiggers@google.com

View File

@@ -75,6 +75,8 @@
#include <trace/events/sched.h>
EXPORT_TRACEPOINT_SYMBOL_GPL(task_rename);
static int bprm_creds_from_file(struct linux_binprm *bprm);
int suid_dumpable = 0;

View File

@@ -6,6 +6,7 @@
#include <linux/slab.h>
#include <asm/unaligned.h>
#include <linux/buffer_head.h>
#include <linux/blk_types.h>
#include "exfat_raw.h"
#include "exfat_fs.h"
@@ -276,10 +277,10 @@ int exfat_zeroed_cluster(struct inode *dir, unsigned int clu)
{
struct super_block *sb = dir->i_sb;
struct exfat_sb_info *sbi = EXFAT_SB(sb);
struct buffer_head *bhs[MAX_BUF_PER_PAGE];
int nr_bhs = MAX_BUF_PER_PAGE;
struct buffer_head *bh;
struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping;
sector_t blknr, last_blknr;
int err, i, n;
int i;
blknr = exfat_cluster_to_sector(sbi, clu);
last_blknr = blknr + sbi->sect_per_clus;
@@ -293,30 +294,22 @@ int exfat_zeroed_cluster(struct inode *dir, unsigned int clu)
}
/* Zeroing the unused blocks on this cluster */
while (blknr < last_blknr) {
for (n = 0; n < nr_bhs && blknr < last_blknr; n++, blknr++) {
bhs[n] = sb_getblk(sb, blknr);
if (!bhs[n]) {
err = -ENOMEM;
goto release_bhs;
}
memset(bhs[n]->b_data, 0, sb->s_blocksize);
}
for (i = blknr; i < last_blknr; i++) {
bh = sb_getblk(sb, i);
if (!bh)
return -ENOMEM;
err = exfat_update_bhs(bhs, n, IS_DIRSYNC(dir));
if (err)
goto release_bhs;
for (i = 0; i < n; i++)
brelse(bhs[i]);
memset(bh->b_data, 0, sb->s_blocksize);
set_buffer_uptodate(bh);
mark_buffer_dirty(bh);
brelse(bh);
}
return 0;
if (IS_DIRSYNC(dir))
return filemap_write_and_wait_range(mapping,
EXFAT_BLK_TO_B(blknr, sb),
EXFAT_BLK_TO_B(last_blknr, sb) - 1);
release_bhs:
exfat_err(sb, "failed zeroed sect %llu\n", (unsigned long long)blknr);
for (i = 0; i < n; i++)
bforget(bhs[i]);
return err;
return 0;
}
int exfat_alloc_cluster(struct inode *inode, unsigned int num_alloc,

View File

@@ -1 +0,0 @@
jaegeuk@google.com

View File

@@ -91,8 +91,9 @@ static inline void __record_iostat_latency(struct f2fs_sb_info *sbi)
unsigned int cnt;
struct f2fs_iostat_latency iostat_lat[MAX_IO_TYPE][NR_PAGE_TYPE];
struct iostat_lat_info *io_lat = sbi->iostat_io_lat;
unsigned long flags;
spin_lock_bh(&sbi->iostat_lat_lock);
spin_lock_irqsave(&sbi->iostat_lat_lock, flags);
for (idx = 0; idx < MAX_IO_TYPE; idx++) {
for (io = 0; io < NR_PAGE_TYPE; io++) {
cnt = io_lat->bio_cnt[idx][io];
@@ -106,7 +107,7 @@ static inline void __record_iostat_latency(struct f2fs_sb_info *sbi)
io_lat->bio_cnt[idx][io] = 0;
}
}
spin_unlock_bh(&sbi->iostat_lat_lock);
spin_unlock_irqrestore(&sbi->iostat_lat_lock, flags);
trace_f2fs_iostat_latency(sbi, iostat_lat);
}
@@ -115,14 +116,15 @@ static inline void f2fs_record_iostat(struct f2fs_sb_info *sbi)
{
unsigned long long iostat_diff[NR_IO_TYPE];
int i;
unsigned long flags;
if (time_is_after_jiffies(sbi->iostat_next_period))
return;
/* Need double check under the lock */
spin_lock_bh(&sbi->iostat_lock);
spin_lock_irqsave(&sbi->iostat_lock, flags);
if (time_is_after_jiffies(sbi->iostat_next_period)) {
spin_unlock_bh(&sbi->iostat_lock);
spin_unlock_irqrestore(&sbi->iostat_lock, flags);
return;
}
sbi->iostat_next_period = jiffies +
@@ -133,7 +135,7 @@ static inline void f2fs_record_iostat(struct f2fs_sb_info *sbi)
sbi->prev_rw_iostat[i];
sbi->prev_rw_iostat[i] = sbi->rw_iostat[i];
}
spin_unlock_bh(&sbi->iostat_lock);
spin_unlock_irqrestore(&sbi->iostat_lock, flags);
trace_f2fs_iostat(sbi, iostat_diff);
@@ -145,25 +147,27 @@ void f2fs_reset_iostat(struct f2fs_sb_info *sbi)
struct iostat_lat_info *io_lat = sbi->iostat_io_lat;
int i;
spin_lock_bh(&sbi->iostat_lock);
spin_lock_irq(&sbi->iostat_lock);
for (i = 0; i < NR_IO_TYPE; i++) {
sbi->rw_iostat[i] = 0;
sbi->prev_rw_iostat[i] = 0;
}
spin_unlock_bh(&sbi->iostat_lock);
spin_unlock_irq(&sbi->iostat_lock);
spin_lock_bh(&sbi->iostat_lat_lock);
spin_lock_irq(&sbi->iostat_lat_lock);
memset(io_lat, 0, sizeof(struct iostat_lat_info));
spin_unlock_bh(&sbi->iostat_lat_lock);
spin_unlock_irq(&sbi->iostat_lat_lock);
}
void f2fs_update_iostat(struct f2fs_sb_info *sbi,
enum iostat_type type, unsigned long long io_bytes)
{
unsigned long flags;
if (!sbi->iostat_enable)
return;
spin_lock_bh(&sbi->iostat_lock);
spin_lock_irqsave(&sbi->iostat_lock, flags);
sbi->rw_iostat[type] += io_bytes;
if (type == APP_BUFFERED_IO || type == APP_DIRECT_IO)
@@ -172,7 +176,7 @@ void f2fs_update_iostat(struct f2fs_sb_info *sbi,
if (type == APP_BUFFERED_READ_IO || type == APP_DIRECT_READ_IO)
sbi->rw_iostat[APP_READ_IO] += io_bytes;
spin_unlock_bh(&sbi->iostat_lock);
spin_unlock_irqrestore(&sbi->iostat_lock, flags);
f2fs_record_iostat(sbi);
}
@@ -185,6 +189,7 @@ static inline void __update_iostat_latency(struct bio_iostat_ctx *iostat_ctx,
struct f2fs_sb_info *sbi = iostat_ctx->sbi;
struct iostat_lat_info *io_lat = sbi->iostat_io_lat;
int idx;
unsigned long flags;
if (!sbi->iostat_enable)
return;
@@ -202,12 +207,12 @@ static inline void __update_iostat_latency(struct bio_iostat_ctx *iostat_ctx,
idx = WRITE_ASYNC_IO;
}
spin_lock_bh(&sbi->iostat_lat_lock);
spin_lock_irqsave(&sbi->iostat_lat_lock, flags);
io_lat->sum_lat[idx][iotype] += ts_diff;
io_lat->bio_cnt[idx][iotype]++;
if (ts_diff > io_lat->peak_lat[idx][iotype])
io_lat->peak_lat[idx][iotype] = ts_diff;
spin_unlock_bh(&sbi->iostat_lat_lock);
spin_unlock_irqrestore(&sbi->iostat_lat_lock, flags);
}
void iostat_update_and_unbind_ctx(struct bio *bio, int rw)

View File

@@ -1 +0,0 @@
balsini@google.com

View File

@@ -1,2 +0,0 @@
akailash@google.com
paullawrence@google.com

View File

@@ -1 +0,0 @@
per-file net/**=file:/net/OWNERS

View File

@@ -1,4 +0,0 @@
per-file bio.h=file:/block/OWNERS
per-file blk*.h=file:/block/OWNERS
per-file f2fs**=file:/fs/f2fs/OWNERS
per-file net**=file:/net/OWNERS

View File

@@ -109,7 +109,7 @@ static inline int elf_core_copy_task_fpregs(struct task_struct *t, struct pt_reg
#endif
}
#if (defined(CONFIG_UML) && defined(CONFIG_X86_32)) || defined(CONFIG_IA64)
#ifdef CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS
/*
* These functions parameterize elf_core_dump in fs/binfmt_elf.c to write out
* extra segments containing the gate DSO contents. Dumping its
@@ -144,6 +144,6 @@ static inline size_t elf_core_extra_data_size(void)
{
return 0;
}
#endif
#endif /* CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS */
#endif /* _LINUX_ELFCORE_H */

View File

@@ -599,7 +599,9 @@
#define ICC_SGI1R_AFFINITY_3_SHIFT 48
#define ICC_SGI1R_AFFINITY_3_MASK (0xffULL << ICC_SGI1R_AFFINITY_3_SHIFT)
#if defined(CONFIG_ARM64) || defined(CONFIG_ARM)
#include <asm/arch_gicv3.h>
#endif
#ifndef __ASSEMBLY__
@@ -651,6 +653,7 @@ struct gic_chip_data {
struct partition_desc **ppi_descs;
};
#if defined(CONFIG_ARM64) || defined(CONFIG_ARM)
static inline bool gic_enable_sre(void)
{
u32 val;
@@ -665,6 +668,12 @@ static inline bool gic_enable_sre(void)
return !!(val & ICC_SRE_EL1_SRE);
}
#else
static inline bool gic_enable_sre(void)
{
return false;
}
#endif
void gic_resume(void);

View File

@@ -161,6 +161,7 @@ void gic_send_sgi(unsigned int cpu_id, unsigned int irq);
int gic_get_cpu_id(unsigned int cpu);
void gic_migrate_target(unsigned int new_cpu_id);
unsigned long gic_get_sgir_physaddr(void);
void gic_v2_resume(void);
#endif /* __ASSEMBLY */
#endif

View File

@@ -127,4 +127,7 @@ extern struct task_struct *find_lock_task_mm(struct task_struct *p);
extern int sysctl_oom_dump_tasks;
extern int sysctl_oom_kill_allocating_task;
extern int sysctl_panic_on_oom;
/* call for adding killed process to reaper. */
extern void add_to_oom_reaper(struct task_struct *p);
#endif /* _INCLUDE_LINUX_OOM_H */

View File

@@ -375,6 +375,7 @@ struct ieee80211_sta_he_cap {
* and NSS Set field"
*
* @only_20mhz: MCS/NSS support for 20 MHz-only STA.
* @bw: MCS/NSS support for 80, 160 and 320 MHz
* @bw._80: MCS/NSS support for BW <= 80 MHz
* @bw._160: MCS/NSS support for BW = 160 MHz
* @bw._320: MCS/NSS support for BW = 320 MHz
@@ -421,6 +422,7 @@ struct ieee80211_sta_eht_cap {
* @he_cap: holds the HE capabilities
* @he_6ghz_capa: HE 6 GHz capabilities, must be filled in for a
* 6 GHz band channel (and 0 may be valid value).
* @eht_cap: STA's EHT capabilities
* @vendor_elems: vendor element(s) to advertise
* @vendor_elems.data: vendor element(s) data
* @vendor_elems.len: vendor element(s) length
@@ -506,7 +508,7 @@ struct ieee80211_edmg {
* This structure describes most essential parameters needed
* to describe 802.11ah S1G capabilities for a STA.
*
* @s1g_supported: is STA an S1G STA
* @s1g: is STA an S1G STA
* @cap: S1G capabilities information
* @nss_mcs: Supported NSS MCS set
*/
@@ -1351,6 +1353,8 @@ struct cfg80211_unsol_bcast_probe_resp {
* @ht_cap: HT capabilities (or %NULL if HT isn't enabled)
* @vht_cap: VHT capabilities (or %NULL if VHT isn't enabled)
* @he_cap: HE capabilities (or %NULL if HE isn't enabled)
* @eht_cap: EHT capabilities (or %NULL if EHT isn't enabled)
* @eht_oper: EHT operation IE (or %NULL if EHT isn't enabled)
* @ht_required: stations must support HT
* @vht_required: stations must support VHT
* @twt_responder: Enable Target Wait Time
@@ -1387,6 +1391,8 @@ struct cfg80211_ap_settings {
const struct ieee80211_vht_cap *vht_cap;
const struct ieee80211_he_cap_elem *he_cap;
const struct ieee80211_he_operation *he_oper;
const struct ieee80211_eht_cap_elem *eht_cap;
const struct ieee80211_eht_operation *eht_oper;
bool ht_required, vht_required, he_required, sae_h2e_required;
bool twt_responder;
u32 flags;
@@ -1453,8 +1459,8 @@ struct cfg80211_csa_settings {
* Used for bss color change
*
* @beacon_color_change: beacon data while performing the color countdown
* @counter_offsets_beacon: offsets of the counters within the beacon (tail)
* @counter_offsets_presp: offsets of the counters within the probe response
* @counter_offset_beacon: offsets of the counters within the beacon (tail)
* @counter_offset_presp: offsets of the counters within the probe response
* @beacon_next: beacon data to be used after the color change
* @count: number of beacons until the color change
* @color: the color used after the change
@@ -1497,6 +1503,7 @@ struct iface_combination_params {
* @STATION_PARAM_APPLY_UAPSD: apply new uAPSD parameters (uapsd_queues, max_sp)
* @STATION_PARAM_APPLY_CAPABILITY: apply new capability
* @STATION_PARAM_APPLY_PLINK_STATE: apply new plink state
* @STATION_PARAM_APPLY_STA_TXPOWER: apply tx power for STA
*
* Not all station parameters have in-band "no change" signalling,
* for those that don't these flags will are used.
@@ -2259,6 +2266,9 @@ struct bss_parameters {
* @plink_timeout: If no tx activity is seen from a STA we've established
* peering with for longer than this time (in seconds), then remove it
* from the STA's list of peers. Default is 30 minutes.
* @dot11MeshConnectedToAuthServer: if set to true then this mesh STA
* will advertise that it is connected to a authentication server
* in the mesh formation field.
* @dot11MeshConnectedToMeshGate: if set to true, advertise that this STA is
* connected to a mesh gate in mesh formation info. If false, the
* value in mesh formation is determined by the presence of root paths
@@ -2435,12 +2445,12 @@ struct cfg80211_scan_info {
/**
* struct cfg80211_scan_6ghz_params - relevant for 6 GHz only
*
* @short_bssid: short ssid to scan for
* @short_ssid: short ssid to scan for
* @bssid: bssid to scan for
* @channel_idx: idx of the channel in the channel array in the scan request
* which the above info relvant to
* @unsolicited_probe: the AP transmits unsolicited probe response every 20 TU
* @short_ssid_valid: short_ssid is valid and can be used
* @short_ssid_valid: @short_ssid is valid and can be used
* @psc_no_listen: when set, and the channel is a PSC channel, no need to wait
* 20 TUs before starting to send probe requests.
*/
@@ -3499,7 +3509,7 @@ struct cfg80211_wowlan_wakeup {
* @kck: key confirmation key (@kck_len bytes)
* @replay_ctr: replay counter (NL80211_REPLAY_CTR_LEN bytes)
* @kek_len: length of kek
* @kck_len length of kck
* @kck_len: length of kck
* @akm: akm (oui, id)
*/
struct cfg80211_gtk_rekey_data {
@@ -3887,6 +3897,7 @@ struct cfg80211_pmsr_ftm_result {
* @type: type of the measurement reported, note that we only support reporting
* one type at a time, but you can report multiple results separately and
* they're all aggregated for userspace.
* @ftm: FTM result
*/
struct cfg80211_pmsr_result {
u64 host_time, ap_tsf;
@@ -4033,7 +4044,7 @@ struct cfg80211_update_owe_info {
* for the entire device
* @interface_stypes: bitmap of management frame subtypes registered
* for the given interface
* @global_mcast_rx: mcast RX is needed globally for these subtypes
* @global_mcast_stypes: mcast RX is needed globally for these subtypes
* @interface_mcast_stypes: mcast RX is needed on this interface
* for these subtypes
*/
@@ -5193,6 +5204,7 @@ struct wiphy_iftype_ext_capab {
* @max_peers: maximum number of peers in a single measurement
* @report_ap_tsf: can report assoc AP's TSF for radio resource measurement
* @randomize_mac_addr: can randomize MAC address for measurement
* @ftm: FTM measurement data
* @ftm.supported: FTM measurement is supported
* @ftm.asap: ASAP-mode is supported
* @ftm.non_asap: non-ASAP-mode is supported
@@ -5849,18 +5861,9 @@ static inline void wiphy_unlock(struct wiphy *wiphy)
* @netdev: (private) Used to reference back to the netdev, may be %NULL
* @identifier: (private) Identifier used in nl80211 to identify this
* wireless device if it has no netdev
* @connected_addr: (private) BSSID or AP MLD address if connected
* @u: union containing data specific to @iftype
* @connected: indicates if connected or not (STA mode)
* @current_bss: (private) Used by the internal configuration code
* @chandef: (private) Used by the internal configuration code to track
* the user-set channel definition.
* @preset_chandef: (private) Used by the internal configuration code to
* track the channel to be used for AP later
* @bssid: (private) Used by the internal configuration code
* @ssid: (private) Used by the internal configuration code
* @ssid_len: (private) Used by the internal configuration code
* @mesh_id_len: (private) Used by the internal configuration code
* @mesh_id_up_len: (private) Used by the internal configuration code
* @wext: (private) Used by the internal wireless extensions compat code
* @wext.ibss: (private) IBSS data part of wext handling
* @wext.connect: (private) connection handling data
@@ -5910,6 +5913,9 @@ static inline void wiphy_unlock(struct wiphy *wiphy)
* @pmsr_free_wk: (private) peer measurements cleanup work
* @unprot_beacon_reported: (private) timestamp of last
* unprotected beacon report
* @links: array of %IEEE80211_MLD_MAX_NUM_LINKS elements containing @addr
* @ap and @client for each link
* @valid_links: bitmap describing what elements of @links are valid
*/
struct wireless_dev {
struct wiphy *wiphy;
@@ -6369,6 +6375,7 @@ unsigned int ieee80211_get_mesh_hdrlen(struct ieee80211s_hdr *meshhdr);
* @addr: the device MAC address
* @iftype: the virtual interface type
* @data_offset: offset of payload after the 802.11 header
* @is_amsdu: true if the 802.11 header is A-MSDU
* Return: 0 on success. Non-zero on error.
*/
int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
@@ -7225,6 +7232,7 @@ void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
* @macaddr: the MAC address of the new candidate
* @ie: information elements advertised by the peer candidate
* @ie_len: length of the information elements buffer
* @sig_dbm: signal level in dBm
* @gfp: allocation flags
*
* This function notifies cfg80211 that the mesh peer candidate has been

View File

@@ -1 +0,0 @@
per-file f2fs**=file:/fs/f2fs/OWNERS

View File

@@ -136,7 +136,7 @@ DECLARE_EVENT_CLASS(net_dev_template,
__assign_str(name, skb->dev->name);
),
TP_printk("dev=%s skbaddr=%px len=%u",
TP_printk("dev=%s skbaddr=%p len=%u",
__get_str(name), __entry->skbaddr, __entry->len)
)

View File

@@ -41,7 +41,7 @@ TRACE_EVENT(qdisc_dequeue,
__entry->txq_state = txq->state;
),
TP_printk("dequeue ifindex=%d qdisc handle=0x%X parent=0x%X txq_state=0x%lX packets=%d skbaddr=%px",
TP_printk("dequeue ifindex=%d qdisc handle=0x%X parent=0x%X txq_state=0x%lX packets=%d skbaddr=%p",
__entry->ifindex, __entry->handle, __entry->parent,
__entry->txq_state, __entry->packets, __entry->skbaddr )
);
@@ -70,7 +70,7 @@ TRACE_EVENT(qdisc_enqueue,
__entry->parent = qdisc->parent;
),
TP_printk("enqueue ifindex=%d qdisc handle=0x%X parent=0x%X skbaddr=%px",
TP_printk("enqueue ifindex=%d qdisc handle=0x%X parent=0x%X skbaddr=%p",
__entry->ifindex, __entry->handle, __entry->parent, __entry->skbaddr)
);

View File

@@ -21,15 +21,15 @@ TRACE_EVENT(spmi_write_begin,
__field ( u8, sid )
__field ( u16, addr )
__field ( u8, len )
__dynamic_array ( u8, buf, len + 1 )
__dynamic_array ( u8, buf, len )
),
TP_fast_assign(
__entry->opcode = opcode;
__entry->sid = sid;
__entry->addr = addr;
__entry->len = len + 1;
memcpy(__get_dynamic_array(buf), buf, len + 1);
__entry->len = len;
memcpy(__get_dynamic_array(buf), buf, len);
),
TP_printk("opc=%d sid=%02d addr=0x%04x len=%d buf=0x[%*phD]",
@@ -92,7 +92,7 @@ TRACE_EVENT(spmi_read_end,
__field ( u16, addr )
__field ( int, ret )
__field ( u8, len )
__dynamic_array ( u8, buf, len + 1 )
__dynamic_array ( u8, buf, len )
),
TP_fast_assign(
@@ -100,8 +100,8 @@ TRACE_EVENT(spmi_read_end,
__entry->sid = sid;
__entry->addr = addr;
__entry->ret = ret;
__entry->len = len + 1;
memcpy(__get_dynamic_array(buf), buf, len + 1);
__entry->len = len;
memcpy(__get_dynamic_array(buf), buf, len);
),
TP_printk("opc=%d sid=%02d addr=0x%04x ret=%d len=%02d buf=0x[%*phD]",

View File

@@ -13,6 +13,8 @@
#include <../sound/usb/usbaudio.h>
/* struct usb_interface */
#include <linux/usb.h>
/* struct snd_pcm_substream */
#include <sound/pcm.h>
DECLARE_HOOK(android_vh_audio_usb_offload_vendor_set,
TP_PROTO(void *arg),
@@ -34,6 +36,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_audio_usb_offload_disconnect,
TP_PROTO(struct usb_interface *intf),
TP_ARGS(intf), 1);
DECLARE_HOOK(android_vh_audio_usb_offload_suspend,
TP_PROTO(struct snd_pcm_substream *substream, int cmd, bool *suspend),
TP_ARGS(substream, cmd, suspend));
#endif /* _TRACE_HOOK_AUDIO_USBOFFLOAD_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@@ -41,10 +41,67 @@ DECLARE_RESTRICTED_HOOK(android_rvh_binder_transaction,
TP_PROTO(struct binder_proc *target_proc, struct binder_proc *proc,
struct binder_thread *thread, struct binder_transaction_data *tr),
TP_ARGS(target_proc, proc, thread, tr), 1);
DECLARE_HOOK(android_vh_binder_proc_transaction_entry,
TP_PROTO(struct binder_proc *proc, struct binder_transaction *t,
struct binder_thread **thread, int node_debug_id, bool pending_async,
bool sync, bool *skip),
TP_ARGS(proc, t, thread, node_debug_id, pending_async, sync, skip));
DECLARE_HOOK(android_vh_binder_select_worklist_ilocked,
TP_PROTO(struct list_head **list, struct binder_thread *thread, struct binder_proc *proc,
int wait_for_proc_work),
TP_ARGS(list, thread, proc, wait_for_proc_work));
DECLARE_HOOK(android_vh_binder_proc_transaction_finish,
TP_PROTO(struct binder_proc *proc, struct binder_transaction *t,
struct task_struct *binder_th_task, bool pending_async, bool sync),
TP_ARGS(proc, t, binder_th_task, pending_async, sync));
DECLARE_HOOK(android_vh_binder_print_transaction_info,
TP_PROTO(struct seq_file *m, struct binder_proc *proc,
const char *prefix, struct binder_transaction *t),
TP_ARGS(m, proc, prefix, t));
DECLARE_HOOK(android_vh_binder_looper_state_registered,
TP_PROTO(struct binder_thread *thread, struct binder_proc *proc),
TP_ARGS(thread, proc));
DECLARE_HOOK(android_vh_binder_thread_read,
TP_PROTO(struct list_head **list, struct binder_proc *proc,
struct binder_thread *thread),
TP_ARGS(list, proc, thread));
DECLARE_HOOK(android_vh_binder_free_proc,
TP_PROTO(struct binder_proc *proc),
TP_ARGS(proc));
DECLARE_HOOK(android_vh_binder_thread_release,
TP_PROTO(struct binder_proc *proc, struct binder_thread *thread),
TP_ARGS(proc, thread));
DECLARE_HOOK(android_vh_binder_read_done,
TP_PROTO(struct binder_proc *proc, struct binder_thread *thread),
TP_ARGS(proc, thread));
DECLARE_HOOK(android_vh_binder_has_work_ilocked,
TP_PROTO(struct binder_thread *thread, bool do_proc_work, int *ret),
TP_ARGS(thread, do_proc_work, ret));
DECLARE_HOOK(android_vh_binder_alloc_new_buf_locked,
TP_PROTO(size_t size, size_t *free_async_space, int is_async),
TP_ARGS(size, free_async_space, is_async));
DECLARE_HOOK(android_vh_binder_reply,
TP_PROTO(struct binder_proc *target_proc, struct binder_proc *proc,
struct binder_thread *thread, struct binder_transaction_data *tr),
TP_ARGS(target_proc, proc, thread, tr));
DECLARE_HOOK(android_vh_binder_trans,
TP_PROTO(struct binder_proc *target_proc, struct binder_proc *proc,
struct binder_thread *thread, struct binder_transaction_data *tr),
TP_ARGS(target_proc, proc, thread, tr));
DECLARE_HOOK(android_vh_binder_preset,
TP_PROTO(struct hlist_head *hhead, struct mutex *lock),
TP_ARGS(hhead, lock));
DECLARE_HOOK(android_vh_binder_proc_transaction,
TP_PROTO(struct task_struct *caller_task, struct task_struct *binder_proc_task,
struct task_struct *binder_th_task, int node_debug_id,
unsigned int code, bool pending_async),
TP_ARGS(caller_task, binder_proc_task, binder_th_task, node_debug_id, code, pending_async));
DECLARE_HOOK(android_vh_binder_new_ref,
TP_PROTO(struct task_struct *proc, uint32_t ref_desc, int node_debug_id),
TP_ARGS(proc, ref_desc, node_debug_id));
DECLARE_HOOK(android_vh_binder_del_ref,
TP_PROTO(struct task_struct *proc, uint32_t ref_desc),
TP_ARGS(proc, ref_desc));
#endif /* _TRACE_HOOK_BINDER_H */
/* This part must be outside protection */

View File

@@ -7,8 +7,12 @@
#define _TRACE_HOOK_CGROUP_H
#include <trace/hooks/vendor_hooks.h>
#ifndef __GENKSYMS__
struct cgroup_taskset;
#else
/* struct cgroup_taskset */
#include <../kernel/cgroup/cgroup-internal.h>
#endif
/* struct cgroup_subsys */
#include <linux/cgroup-defs.h>
/* struct task_struct */
@@ -31,6 +35,9 @@ DECLARE_HOOK(android_rvh_memcgv2_init,
DECLARE_HOOK(android_rvh_memcgv2_calc_decayed_watermark,
TP_PROTO(struct mem_cgroup *memcg),
TP_ARGS(memcg));
DECLARE_RESTRICTED_HOOK(android_rvh_cpuset_fork,
TP_PROTO(struct task_struct *p, int *inherit_cpus),
TP_ARGS(p, inherit_cpus), 1);
struct page_counter;
DECLARE_HOOK(android_rvh_update_watermark,

View File

@@ -16,6 +16,11 @@ DECLARE_HOOK(android_vh_alter_futex_plist_add,
struct plist_head *head,
bool *already_on_hb),
TP_ARGS(node, head, already_on_hb));
DECLARE_HOOK(android_vh_futex_sleep_start,
TP_PROTO(struct task_struct *p),
TP_ARGS(p));
#endif /* _TRACE_HOOK_FUTEX_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@@ -8,13 +8,17 @@
#define _TRACE_HOOK_GIC_H
#include <trace/hooks/vendor_hooks.h>
/* struct cpumask */
#include <linux/cpumask.h>
/* struct irq_data */
#include <linux/irq.h>
struct gic_chip_data;
/* struct irq_domain */
#include <linux/irqdomain.h>
DECLARE_HOOK(android_vh_gic_resume,
TP_PROTO(struct gic_chip_data *gd),
TP_ARGS(gd));
DECLARE_HOOK(android_vh_gic_v2_resume,
TP_PROTO(struct irq_domain *domain, void __iomem *dist_base),
TP_ARGS(domain, dist_base));
DECLARE_HOOK(android_vh_gic_set_affinity,
TP_PROTO(struct irq_data *d, const struct cpumask *mask_val,

View File

@@ -13,6 +13,9 @@
#include <linux/cpumask.h>
/* struct irq_data */
#include <linux/irq.h>
/* struct gic_chip_data */
#include <linux/irqchip/arm-gic-v3.h>
DECLARE_HOOK(android_vh_gic_v3_affinity_init,
TP_PROTO(int irq, u32 offset, u64 *affinity),
TP_ARGS(irq, offset, affinity));
@@ -22,6 +25,9 @@ DECLARE_RESTRICTED_HOOK(android_rvh_gic_v3_set_affinity,
void __iomem *rbase, u64 redist_stride),
TP_ARGS(d, mask_val, affinity, force, base, rbase, redist_stride),
1);
DECLARE_HOOK(android_vh_gic_resume,
TP_PROTO(struct gic_chip_data *gd),
TP_ARGS(gd));
#endif /* _TRACE_HOOK_GIC_V3_H */
/* This part must be outside protection */

View File

@@ -79,6 +79,10 @@ DECLARE_HOOK(android_vh_mem_cgroup_css_online,
DECLARE_HOOK(android_vh_mem_cgroup_css_offline,
TP_PROTO(struct cgroup_subsys_state *css, struct mem_cgroup *memcg),
TP_ARGS(css, memcg));
DECLARE_HOOK(android_vh_vmpressure,
TP_PROTO(struct mem_cgroup *memcg, bool *bypass),
TP_ARGS(memcg, bypass));
#endif /* _TRACE_HOOK_MM_H */
/* This part must be outside protection */

View File

@@ -53,6 +53,18 @@ DECLARE_RESTRICTED_HOOK(android_rvh_partial_init,
TP_PROTO(struct mmc_host *host, bool *partial_init),
TP_ARGS(host, partial_init), 1);
DECLARE_HOOK(android_vh_mmc_update_partition_status,
TP_PROTO(struct mmc_card *card),
TP_ARGS(card));
DECLARE_HOOK(android_vh_mmc_sd_update_cmdline_timing,
TP_PROTO(struct mmc_card *card, int *err),
TP_ARGS(card, err));
DECLARE_HOOK(android_vh_mmc_sd_update_dataline_timing,
TP_PROTO(struct mmc_card *card, int *err),
TP_ARGS(card, err));
#endif /* _TRACE_HOOK_MMC_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@@ -13,10 +13,31 @@ DECLARE_HOOK(android_vh_try_to_freeze_todo,
TP_PROTO(unsigned int todo, unsigned int elapsed_msecs, bool wq_busy),
TP_ARGS(todo, elapsed_msecs, wq_busy));
DECLARE_HOOK(android_vh_try_to_freeze_todo_logging,
TP_PROTO(bool *logging_on),
TP_ARGS(logging_on));
DECLARE_HOOK(android_vh_try_to_freeze_todo_unfrozen,
TP_PROTO(struct task_struct *p),
TP_ARGS(p));
enum freq_qos_req_type;
struct freq_qos_request;
struct freq_constraints;
DECLARE_HOOK(android_vh_freq_qos_add_request,
TP_PROTO(struct freq_constraints *qos, struct freq_qos_request *req,
enum freq_qos_req_type type, int value, int ret),
TP_ARGS(qos, req, type, value, ret));
DECLARE_HOOK(android_vh_freq_qos_update_request,
TP_PROTO(struct freq_qos_request *req, int value),
TP_ARGS(req, value));
DECLARE_HOOK(android_vh_freq_qos_remove_request,
TP_PROTO(struct freq_qos_request *req),
TP_ARGS(req));
#endif /* _TRACE_HOOK_POWER_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@@ -26,11 +26,15 @@ DECLARE_HOOK(android_vh_alter_rwsem_list_add,
struct rw_semaphore *sem,
bool *already_on_list),
TP_ARGS(waiter, sem, already_on_list));
DECLARE_HOOK(android_vh_rwsem_wake_finish,
TP_PROTO(struct rw_semaphore *sem),
TP_ARGS(sem));
#else
#define trace_android_vh_rwsem_init(sem)
#define trace_android_vh_rwsem_wake(sem)
#define trace_android_vh_rwsem_write_finished(sem)
#define trace_android_vh_alter_rwsem_list_add(waiter, sem, already_on_list)
#define trace_android_vh_rwsem_wake_finish(sem)
#endif
#endif /* _TRACE_HOOK_RWSEM_H */
/* This part must be outside protection */

View File

@@ -9,8 +9,12 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
#ifndef __GENKSYMS__
struct cgroup_taskset;
#else
/* struct cgroup_taskset */
#include <../kernel/cgroup/cgroup-internal.h>
#endif
/* struct cgroup_subsys_state */
#include <linux/cgroup-defs.h>
/* struct em_perf_domain */
@@ -268,6 +272,13 @@ DECLARE_HOOK(android_vh_map_util_freq,
unsigned long cap, unsigned long *next_freq),
TP_ARGS(util, freq, cap, next_freq));
struct cpufreq_policy;
DECLARE_HOOK(android_vh_map_util_freq_new,
TP_PROTO(unsigned long util, unsigned long freq,
unsigned long cap, unsigned long *next_freq, struct cpufreq_policy *policy,
bool *need_freq_update),
TP_ARGS(util, freq, cap, next_freq, policy, need_freq_update));
DECLARE_HOOK(android_vh_em_cpu_energy,
TP_PROTO(struct em_perf_domain *pd,
unsigned long max_util, unsigned long sum_util,
@@ -315,6 +326,11 @@ DECLARE_RESTRICTED_HOOK(android_rvh_set_cpus_allowed_ptr_locked,
unsigned int *dest_cpu),
TP_ARGS(cpu_valid_mask, new_mask, dest_cpu), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_set_cpus_allowed_by_task,
TP_PROTO(const struct cpumask *cpu_valid_mask, const struct cpumask *new_mask,
struct task_struct *p, unsigned int *dest_cpu),
TP_ARGS(cpu_valid_mask, new_mask, p, dest_cpu), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_do_sched_yield,
TP_PROTO(struct rq *rq),
TP_ARGS(rq), 1);
@@ -327,6 +343,12 @@ DECLARE_HOOK(android_vh_irqtime_account_process_tick,
TP_PROTO(struct task_struct *p, struct rq *rq, int user_tick, int ticks),
TP_ARGS(p, rq, user_tick, ticks));
DECLARE_HOOK(android_vh_sched_pelt_multiplier,
TP_PROTO(unsigned int old, unsigned int cur, int *ret),
TP_ARGS(old, cur, ret));
/* Conditionally defined upon CONFIG_UCLAMP_TASK */
struct uclamp_se;
DECLARE_RESTRICTED_HOOK(android_rvh_uclamp_eff_get,
TP_PROTO(struct task_struct *p, enum uclamp_id clamp_id,
struct uclamp_se *uclamp_max, struct uclamp_se *uclamp_eff, int *ret),
@@ -366,6 +388,10 @@ DECLARE_HOOK(android_vh_em_dev_register_pd,
TP_PROTO(bool *cond),
TP_ARGS(cond));
DECLARE_HOOK(android_vh_sched_stat_runtime_rt,
TP_PROTO(struct task_struct *tsk, u64 delta),
TP_ARGS(tsk, delta));
DECLARE_RESTRICTED_HOOK(android_rvh_post_init_entity_util_avg,
TP_PROTO(struct sched_entity *se),
TP_ARGS(se), 1);
@@ -410,6 +436,39 @@ DECLARE_HOOK(android_vh_dup_task_struct,
DECLARE_HOOK(android_vh_account_task_time,
TP_PROTO(struct task_struct *p, struct rq *rq, int user_tick),
TP_ARGS(p, rq, user_tick));
DECLARE_RESTRICTED_HOOK(android_rvh_set_cpus_allowed_comm,
TP_PROTO(struct task_struct *p, const struct cpumask *new_mask),
TP_ARGS(p, new_mask), 1);
DECLARE_HOOK(android_vh_sched_setaffinity_early,
TP_PROTO(struct task_struct *p, const struct cpumask *new_mask, int *retval),
TP_ARGS(p, new_mask, retval));
DECLARE_RESTRICTED_HOOK(android_rvh_attach_entity_load_avg,
TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se),
TP_ARGS(cfs_rq, se), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_detach_entity_load_avg,
TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se),
TP_ARGS(cfs_rq, se), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_update_load_avg,
TP_PROTO(u64 now, struct cfs_rq *cfs_rq, struct sched_entity *se),
TP_ARGS(now, cfs_rq, se), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_remove_entity_load_avg,
TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se),
TP_ARGS(cfs_rq, se), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_update_blocked_fair,
TP_PROTO(struct rq *rq),
TP_ARGS(rq), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_update_rt_rq_load_avg,
TP_PROTO(u64 now, struct rq *rq, struct task_struct *tsk, int running),
TP_ARGS(now, rq, tsk, running), 1);
/* macro versions of hooks are no longer required */
#endif /* _TRACE_HOOK_SCHED_H */

View File

@@ -12,6 +12,12 @@ struct task_struct;
DECLARE_HOOK(android_vh_do_send_sig_info,
TP_PROTO(int sig, struct task_struct *killer, struct task_struct *dst),
TP_ARGS(sig, killer, dst));
DECLARE_HOOK(android_vh_process_killed,
TP_PROTO(struct task_struct *task, bool *reap),
TP_ARGS(task, reap));
DECLARE_HOOK(android_vh_exit_signal,
TP_PROTO(struct task_struct *task),
TP_ARGS(task));
#endif /* _TRACE_HOOK_SIGNAL_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@@ -19,6 +19,10 @@ DECLARE_HOOK(android_vh_update_topology_flags_workfn,
TP_PROTO(void *unused),
TP_ARGS(unused));
DECLARE_RESTRICTED_HOOK(android_rvh_update_thermal_stats,
TP_PROTO(int cpu),
TP_ARGS(cpu), 1);
#endif /* _TRACE_HOOK_TOPOLOGY_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@@ -34,6 +34,9 @@ DECLARE_HOOK(android_vh_shrink_slab_bypass,
DECLARE_HOOK(android_vh_do_shrink_slab,
TP_PROTO(struct shrinker *shrinker, struct shrink_control *shrinkctl, int priority),
TP_ARGS(shrinker, shrinkctl, priority));
DECLARE_HOOK(android_vh_tune_memcg_scan_type,
TP_PROTO(struct mem_cgroup *memcg, char *scan_type),
TP_ARGS(memcg, scan_type));
#endif /* _TRACE_HOOK_VMSCAN_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@@ -1,3 +0,0 @@
per-file f2fs**=file:/fs/f2fs/OWNERS
per-file fuse**=file:/fs/fuse/OWNERS
per-file net**=file:/net/OWNERS

View File

@@ -319,6 +319,7 @@ enum transaction_flags {
TF_STATUS_CODE = 0x08, /* contents are a 32-bit status code */
TF_ACCEPT_FDS = 0x10, /* allow replies with file descriptors */
TF_CLEAR_BUF = 0x20, /* clear buffer on txn complete */
TF_UPDATE_TXN = 0x40, /* update the outdated pending async txn */
};
struct binder_transaction_data {

View File

@@ -40,6 +40,9 @@ typedef __s64 Elf64_Sxword;
#define PT_GNU_STACK (PT_LOOS + 0x474e551)
/* ARM MTE memory tag segment type */
#define PT_AARCH64_MEMTAG_MTE (PT_LOPROC + 0x2)
/*
* Extended Numbering
*

View File

@@ -1518,11 +1518,11 @@ enum nl80211_commands {
/*
* These are temporary definitions that will become permanent when the UAPI
* change is accepted upstream. This will not be used in production until the
* UAPI change lands upstream
* changes lands into linux.git tree. These attributes must not be used in
* production until the UAPI change lands into linux.git tree.
*/
/* Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?h=mld&id=a353a99fb75e5c1c3b15050e9efaab1997350862 */
/* Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?id=7b0a0e3c3a88260b6fcb017e49f198463aa62ed1 */
#define NL80211_CMD_ADD_LINK NL80211_CMD_RESERVED_DO_NOT_USE_1
#define NL80211_CMD_REMOVE_LINK NL80211_CMD_RESERVED_DO_NOT_USE_2
@@ -3269,22 +3269,22 @@ enum nl80211_attrs {
/*
* These are temporary definitions that will become permanent when the UAPI
* change is accepted upstream. This will not be used in production until the
* UAPI change lands upstream
* changes lands into linux.git tree. These attributes must not be used in
* production until the UAPI change lands into linux.git tree.
*/
/* Link: https://lore.kernel.org/linux-wireless/1653312358-12321-1-git-send-email-quic_vjakkam@quicinc.com/ */
#define NL80211_ATTR_MAX_NUM_AKM_SUITES NL80211_ATTR_RESERVED_DO_NOT_USE_1
/* Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?id=7b0a0e3c3a88260b6fcb017e49f198463aa62ed1 */
#define NL80211_ATTR_MLO_LINKS NL80211_ATTR_RESERVED_DO_NOT_USE_1
#define NL80211_ATTR_MLO_LINK_ID NL80211_ATTR_RESERVED_DO_NOT_USE_2
/* Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?h=mld&id=a353a99fb75e5c1c3b15050e9efaab1997350862 */
#define NL80211_ATTR_MLO_LINKS NL80211_ATTR_RESERVED_DO_NOT_USE_2
#define NL80211_ATTR_MLO_LINK_ID NL80211_ATTR_RESERVED_DO_NOT_USE_3
/* Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?id=d648c23024bd01333acd2fd5e34bcde0ffb66b16 */
#define NL80211_ATTR_MLD_ADDR NL80211_ATTR_RESERVED_DO_NOT_USE_3
/* Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?h=mld&id=e35626979423cadc21bd4a68d4aa14eaeccbbd59 */
#define NL80211_ATTR_MLD_ADDR NL80211_ATTR_RESERVED_DO_NOT_USE_4
/* Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?id=efbabc11650040c64884ff3019b88c7bcc0ceb1d */
#define NL80211_ATTR_MLO_SUPPORT NL80211_ATTR_RESERVED_DO_NOT_USE_4
/* Link: https://lore.kernel.org/linux-wireless/1654679797-7740-1-git-send-email-quic_vjakkam@quicinc.com/ */
#define NL80211_ATTR_MLO_SUPPORT NL80211_ATTR_RESERVED_DO_NOT_USE_5
/* Link: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?id=ecad3b0b99bff7247a11f8c7cb19ac9b0cb28b09 */
#define NL80211_ATTR_MAX_NUM_AKM_SUITES NL80211_ATTR_RESERVED_DO_NOT_USE_5
/* source-level API compatibility */
#define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION
@@ -4982,6 +4982,7 @@ enum nl80211_bss_scan_width {
* Contains a nested array of signal strength attributes (u8, dBm),
* using the nesting index as the antenna number.
* @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
* @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8).
* @__NL80211_BSS_AFTER_LAST: internal
* @NL80211_BSS_MAX: highest BSS attribute
*/
@@ -5018,6 +5019,14 @@ enum nl80211_bss {
NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1
};
/*
* These are temporary definitions that will become permanent when the UAPI
* changes lands into linux.git tree. These attributes must not be used in
* production until the UAPI change lands into linux.git tree.
*/
#define NL80211_BSS_MLO_LINK_ID NL80211_BSS_RESERVED_DO_NOT_USE_1
/**
* enum nl80211_bss_status - BSS "status"
* @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS.

View File

@@ -67,6 +67,7 @@
#include <linux/wait.h>
#include <trace/hooks/sched.h>
#include <trace/hooks/cgroup.h>
DEFINE_STATIC_KEY_FALSE(cpusets_pre_enable_key);
DEFINE_STATIC_KEY_FALSE(cpusets_enabled_key);
@@ -2955,10 +2956,13 @@ static void cpuset_bind(struct cgroup_subsys_state *root_css)
*/
static void cpuset_fork(struct task_struct *task)
{
int inherit_cpus = 0;
if (task_css_is_root(task, cpuset_cgrp_id))
return;
set_cpus_allowed_ptr(task, current->cpus_ptr);
trace_android_rvh_cpuset_fork(task, &inherit_cpus);
if (!inherit_cpus)
set_cpus_allowed_ptr(task, current->cpus_ptr);
task->mems_allowed = current->mems_allowed;
}
@@ -3398,7 +3402,7 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask)
guarantee_online_cpus(tsk, pmask);
spin_unlock_irqrestore(&callback_lock, flags);
}
EXPORT_SYMBOL_GPL(cpuset_cpus_allowed);
/**
* cpuset_cpus_allowed_fallback - final fallback before complete catastrophe.
* @tsk: pointer to task_struct with which the scheduler is struggling

View File

@@ -479,3 +479,4 @@ struct cgroup_subsys freezer_cgrp_subsys = {
.fork = freezer_fork,
.legacy_cftypes = files,
};
EXPORT_SYMBOL_GPL(freezer_cgrp_subsys);

View File

@@ -1136,10 +1136,11 @@ static void check_sync(struct device *dev,
dir2name[entry->direction],
dir2name[ref->direction]);
/* sg list count can be less than map count when partial cache sync */
if (ref->sg_call_ents && ref->type == dma_debug_sg &&
ref->sg_call_ents != entry->sg_call_ents) {
ref->sg_call_ents > entry->sg_call_ents) {
err_printk(ref->dev, entry, "device driver syncs "
"DMA sg list with different entry count "
"DMA sg list count larger than map count "
"[map count=%d] [sync count=%d]\n",
entry->sg_call_ents, ref->sg_call_ents);
}

View File

@@ -2853,8 +2853,10 @@ static void futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q *q,
* flagged for rescheduling. Only call schedule if there
* is no timeout, or if it has yet to expire.
*/
if (!timeout || timeout->task)
if (!timeout || timeout->task) {
trace_android_vh_futex_sleep_start(current);
freezable_schedule();
}
}
__set_current_state(TASK_RUNNING);
}

View File

@@ -74,7 +74,7 @@ fi
# of tree builds having stale headers in srctree. Just silence CPIO for now.
for f in $dir_list;
do find "$f" -name "*.h";
done | cpio --quiet -pd $cpio_dir >/dev/null 2>&1
done | cpio --quiet -pdu $cpio_dir >/dev/null 2>&1
# Remove comments except SDPX lines
find $cpio_dir -type f -print0 |

View File

@@ -8,6 +8,7 @@
#include <linux/sched.h>
#include <linux/sched/task.h>
#include <linux/slab.h>
#include <linux/sched/debug.h>
#include <linux/errno.h>
int __percpu_init_rwsem(struct percpu_rw_semaphore *sem,
@@ -163,7 +164,7 @@ static void percpu_rwsem_wait(struct percpu_rw_semaphore *sem, bool reader)
__set_current_state(TASK_RUNNING);
}
bool __percpu_down_read(struct percpu_rw_semaphore *sem, bool try)
bool __sched __percpu_down_read(struct percpu_rw_semaphore *sem, bool try)
{
if (__percpu_down_read_trylock(sem))
return true;
@@ -212,7 +213,7 @@ static bool readers_active_check(struct percpu_rw_semaphore *sem)
return true;
}
void percpu_down_write(struct percpu_rw_semaphore *sem)
void __sched percpu_down_write(struct percpu_rw_semaphore *sem)
{
might_sleep();
rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_);

View File

@@ -1053,7 +1053,7 @@ out_nolock:
/*
* Wait until we successfully acquire the write lock
*/
static struct rw_semaphore *
static struct rw_semaphore __sched *
rwsem_down_write_slowpath(struct rw_semaphore *sem, int state)
{
long count;
@@ -1190,6 +1190,7 @@ static struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem)
if (!list_empty(&sem->wait_list))
rwsem_mark_wake(sem, RWSEM_WAKE_ANY, &wake_q);
trace_android_vh_rwsem_wake_finish(sem);
raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
wake_up_q(&wake_q);

View File

@@ -1379,20 +1379,20 @@ static int verify_namespace_is_imported(const struct load_info *info,
return 0;
}
static bool inherit_taint(struct module *mod, struct module *owner)
static bool inherit_taint(struct module *mod, struct module *owner, const char *name)
{
if (!owner || !test_bit(TAINT_PROPRIETARY_MODULE, &owner->taints))
return true;
if (mod->using_gplonly_symbols) {
pr_err("%s: module using GPL-only symbols uses symbols from proprietary module %s.\n",
mod->name, owner->name);
pr_err("%s: module using GPL-only symbols uses symbols %s from proprietary module %s.\n",
mod->name, name, owner->name);
return false;
}
if (!test_bit(TAINT_PROPRIETARY_MODULE, &mod->taints)) {
pr_warn("%s: module uses symbols from proprietary module %s, inheriting taint.\n",
mod->name, owner->name);
pr_warn("%s: module uses symbols %s from proprietary module %s, inheriting taint.\n",
mod->name, name, owner->name);
set_bit(TAINT_PROPRIETARY_MODULE, &mod->taints);
}
return true;
@@ -1424,7 +1424,7 @@ static const struct kernel_symbol *resolve_symbol(struct module *mod,
if (fsa.license == GPL_ONLY)
mod->using_gplonly_symbols = true;
if (!inherit_taint(mod, fsa.owner)) {
if (!inherit_taint(mod, fsa.owner, name)) {
fsa.sym = NULL;
goto getname;
}

View File

@@ -40,6 +40,7 @@ static int try_to_freeze_tasks(bool user_only)
unsigned int elapsed_msecs;
bool wakeup = false;
int sleep_usecs = USEC_PER_MSEC;
bool todo_logging_on = false;
start = ktime_get_boottime();
@@ -101,7 +102,8 @@ static int try_to_freeze_tasks(bool user_only)
if (wq_busy)
show_workqueue_state();
if (pm_debug_messages_on) {
trace_android_vh_try_to_freeze_todo_logging(&todo_logging_on);
if (pm_debug_messages_on || todo_logging_on) {
read_lock(&tasklist_lock);
for_each_process_thread(g, p) {
if (p != current && !freezer_should_skip(p)

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