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

Sync up with android12-5.10 for the following commits:

90732d426e UPSTREAM: mm/compaction: correct deferral logic for proactive compaction
d0a88ae479 ANDROID: Enable GKI Dr. No Enforcement
e6a59da61e ANDROID: media: v4l2-core: Fix deadlock in vendor hook
fdb1cfe2d3 FROMGIT: dma_buf: remove dmabuf sysfs teardown before release
1dc0dd2573 ANDROID: update mtk symbol list
a669748346 UPSTREAM: mfd: syscon: Free the allocated name field of struct regmap_config
cffe67a351 ANDROID: Give UIC cmd timeout a larger value
3bca0b5344 ANDROID: binder: retry security_secid_to_secctx()
9fdfeda4c9 ANDROID: update new gki symbol for mtk
1dd167be9f ANDROID: mm, kasan: fix for "integrate page_alloc init with HW_TAGS"
f215850ea0 UPSTREAM: kasan: fix conflict with page poisoning
a3da917661 ANDROID: GKI: Export two more mm symbols for GKI
0497b9601b ANDROID: Update symbol list for mtk
0f27e1d317 FROMLIST: kfence: skip all GFP_ZONEMASK allocations
8478d8dc53 FROMLIST: kfence: move the size check to the beginning of __kfence_alloc()
ddabf14bea ANDROID: ABI: update allowed list for galaxy
11cec52238 FROMGIT: f2fs: add sysfs nodes to get GC info for each GC mode
fdc46110cb ANDROID: abi_gki_aarch64_qcom: Add android_debug_for_each_module
0bb433e014 ANDROID: debug_symbols: Add android_debug_for_each_module
a0429aa1d0 ANDROID: ABI: Update ABI for symbol list updates
c68e5ca9f8 ANDROID: GKI: Update symbols to symbol list
aac5a77959 ANDROID: Update symbol list for mtk
42fc1faf44 UPSTREAM: block, bfq: set next_rq to waker_bfqq->next_rq in waker injection
e37cc8a09f UPSTREAM: mm/mremap: hold the rmap lock in write mode when moving page table entries.
9b136eab76 ANDROID: pstore/ram: Add backward compatibility for ramoops reserved region
df97297651 ANDROID: Update symbol list for mtk
4322bb07e8 ANDROID: vendor_hooks: Modify the function name
007213b1d0 BACKPORT: FROMLIST: kasan: add memzero int for unaligned size at DEBUG
7acbce0bf4 BACKPORT: FROMLIST: mm: move helper to check slub_debug_enabled
d6eeae59b5 ANDROID: ABI: initial update allowed list for galaxy

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I6d28f1be3cbd8a1fed86d2d647e6c2bb55221b0a
This commit is contained in:
Greg Kroah-Hartman
2021-07-22 13:31:35 +02:00
54 changed files with 7314 additions and 270 deletions

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/Documentation/ABI/testing/OWNERS

View File

@@ -493,3 +493,17 @@ Contact: "Chao Yu" <yuchao0@huawei.com>
Description: When ATGC is on, it controls age threshold to bypass GCing young
candidates whose age is not beyond the threshold, by default it was
initialized as 604800 seconds (equals to 7 days).
What: /sys/fs/f2fs/<disk>/gc_reclaimed_segments
Date: July 2021
Contact: "Daeho Jeong" <daehojeong@google.com>
Description: Show how many segments have been reclaimed by GC during a specific
GC mode (0: GC normal, 1: GC idle CB, 2: GC idle greedy,
3: GC idle AT, 4: GC urgent high, 5: GC urgent low)
You can re-initialize this value to "0".
What: /sys/fs/f2fs/<disk>/gc_segment_mode
Date: July 2021
Contact: "Daeho Jeong" <daehojeong@google.com>
Description: You can control for which gc mode the "gc_reclaimed_segments" node shows.
Refer to the description of the modes in "gc_reclaimed_segments".

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/Documentation/filesystems/OWNERS

17
OWNERS
View File

@@ -1,2 +1,15 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/OWNERS
set noparent
# GKI Dr. No Enforcement is active on this branch. Approval of one of the
# following persons is required following a regular CodeReview+2 vote of a code
# reviewer.
#
# See the GKI release documentation (go/gki-dr-no) for further details.
adelva@google.com
maennich@google.com
malchev@google.com
saravanak@google.com
smuckle@google.com
sspatil@google.com
tkjos@google.com

View File

@@ -1,12 +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
adelva@google.com
maennich@google.com
saravanak@google.com
sspatil@google.com
tkjos@google.com
willmcvicker@google.com
# 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

File diff suppressed because it is too large Load Diff

View File

@@ -15,15 +15,19 @@
__alloc_disk_node
alloc_etherdev_mqs
alloc_io_pgtable_ops
alloc_netdev_mqs
alloc_pages_exact
__alloc_pages_nodemask
__alloc_percpu
__alloc_percpu_gfp
__alloc_skb
alloc_workqueue
android_debug_symbol
android_rvh_probe_register
anon_inode_getfd
anon_inode_getfile
arc4_crypt
arc4_setkey
__arch_copy_from_user
__arch_copy_to_user
arch_timer_read_counter
@@ -32,6 +36,7 @@
__arm_smccc_hvc
__arm_smccc_smc
arp_tbl
async_schedule_node
atomic_notifier_call_chain
atomic_notifier_chain_register
atomic_notifier_chain_unregister
@@ -65,6 +70,7 @@
blocking_notifier_call_chain
blocking_notifier_chain_register
blocking_notifier_chain_unregister
bpf_trace_run10
bpf_trace_run12
bpf_trace_run1
bpf_trace_run2
@@ -78,6 +84,7 @@
bus_register
bus_set_iommu
bus_unregister
call_rcu
cancel_delayed_work
cancel_delayed_work_sync
cancel_work_sync
@@ -88,8 +95,6 @@
cdev_device_del
cdev_init
__cfi_slowpath
cgroup_taskset_first
cgroup_taskset_next
__check_object_size
check_preempt_curr
__class_create
@@ -212,21 +217,36 @@
cpus_read_unlock
cpu_subsys
cpu_topology
crc32_be
crc32_le
crc8
crc8_populate_msb
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_register_scomp
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
dapm_clock_event
dapm_kcontrol_get_value
@@ -244,9 +264,11 @@
debugfs_create_u16
debugfs_create_u32
debugfs_create_u64
debugfs_create_u8
debugfs_create_x32
debugfs_lookup
debugfs_remove
debugfs_rename
dec_zone_page_state
default_llseek
deferred_free
@@ -255,11 +277,15 @@
del_timer
del_timer_sync
destroy_workqueue
dev_alloc_name
dev_base_lock
dev_change_net_namespace
dev_close
dev_driver_string
_dev_emerg
_dev_err
dev_err_probe
dev_fetch_sw_netstats
devfreq_add_governor
devfreq_get_devfreq_by_phandle
devfreq_monitor_resume
@@ -273,6 +299,8 @@
devfreq_suspend_device
devfreq_update_interval
dev_fwnode
__dev_get_by_index
dev_get_by_index
dev_get_regmap
dev_get_stats
device_add
@@ -611,6 +639,7 @@
em_dev_register_perf_domain
enable_irq
enable_percpu_irq
ether_setup
eth_header
eth_header_cache
eth_header_cache_update
@@ -619,6 +648,7 @@
eth_platform_get_mac_address
ethtool_op_get_link
ethtool_op_get_ts_info
eth_type_trans
eth_validate_addr
event_triggers_call
extcon_get_edev_by_phandle
@@ -660,16 +690,26 @@
freq_qos_add_request
freq_qos_remove_request
freq_qos_update_request
fsg_common_create_luns
fsg_common_set_cdev
fsg_common_set_inquiry_string
fsg_common_set_sysfs
fsg_config_from_params
fsync_bdev
fwnode_handle_get
fwnode_handle_put
fwnode_property_present
fwnode_property_read_string
fwnode_property_read_u32_array
gcd
generic_file_llseek
generic_handle_irq
generic_iommu_put_resv_regions
generic_mii_ioctl
genlmsg_multicast_allns
genlmsg_put
genl_register_family
genl_unregister_family
genphy_resume
gen_pool_add_owner
gen_pool_alloc_algo_owner
@@ -689,9 +729,12 @@
get_cpu_iowait_time_us
get_device
get_each_dmabuf
get_freelist_nr_pages
__get_free_pages
get_governor_parent_kobj
get_kernel_pages
get_net_ns_by_fd
get_net_ns_by_pid
get_pid_task
get_random_bytes
get_random_u32
@@ -739,6 +782,9 @@
hrtimer_init
hrtimer_start_range_ns
hrtimer_try_to_cancel
__hw_addr_init
__hw_addr_sync
__hw_addr_unsync
i2c_add_adapter
i2c_del_adapter
i2c_del_driver
@@ -749,6 +795,7 @@
i2c_smbus_read_i2c_block_data
i2c_smbus_write_byte_data
i2c_smbus_write_i2c_block_data
i2c_smbus_write_word_data
i2c_transfer
i2c_transfer_buffer_flags
i2c_unregister_device
@@ -789,6 +836,7 @@
iio_trigger_notify_done
inc_zone_page_state
in_egroup_p
inet_csk_get_port
init_net
init_pseudo
__init_rwsem
@@ -862,12 +910,17 @@
kasprintf
kernel_cpustat
kernel_kobj
kernel_param_lock
kernel_param_unlock
kernel_power_off
kernel_restart
kernel_sigaction
kernfs_path_from_node
kern_mount
kern_unmount
key_create_or_update
key_put
keyring_alloc
__kfifo_alloc
__kfifo_free
__kfifo_in
@@ -877,6 +930,7 @@
kfree_const
kfree_sensitive
kfree_skb
kfree_skb_list
kill_anon_super
kimage_vaddr
kimage_voffset
@@ -888,6 +942,7 @@
kmem_cache_create
kmem_cache_destroy
kmem_cache_free
kmemdup
kobject_add
kobject_create_and_add
kobject_init
@@ -896,7 +951,6 @@
kobject_uevent
kobject_uevent_env
krealloc
kset_find_obj
kstrdup
kstrdup_const
kstrndup
@@ -930,9 +984,11 @@
kthread_stop
kthread_worker_fn
ktime_get
ktime_get_coarse_with_offset
ktime_get_mono_fast_ns
ktime_get_raw_ts64
ktime_get_real_ts64
ktime_get_seconds
ktime_get_ts64
ktime_get_with_offset
kvfree
@@ -1066,6 +1122,7 @@
__netdev_alloc_skb
netdev_err
netdev_info
netdev_set_default_ethtool_ops
netdev_warn
netif_carrier_off
netif_carrier_on
@@ -1074,12 +1131,25 @@
netif_receive_skb_list
netif_rx
netif_rx_ni
netif_tx_stop_all_queues
netif_tx_wake_queue
netlink_broadcast
__netlink_kernel_create
netlink_register_notifier
netlink_unicast
netlink_unregister_notifier
net_namespace_list
net_ns_type_operations
net_ratelimit
nf_register_net_hooks
nf_unregister_net_hooks
nla_find
nla_memcpy
__nla_parse
nla_put_64bit
nla_put
nla_reserve
__nla_validate
__nlmsg_put
no_llseek
nonseekable_open
@@ -1183,6 +1253,7 @@
__page_pinner_migration_failed
panic
panic_notifier_list
param_array_ops
param_get_bool
param_get_charp
param_get_int
@@ -1292,6 +1363,8 @@
power_supply_register
power_supply_reg_notifier
power_supply_set_property
prandom_bytes
prandom_u32
preempt_schedule
preempt_schedule_notrace
prepare_to_wait_event
@@ -1305,8 +1378,11 @@
proc_remove
proc_set_user
pskb_expand_head
__pskb_pull_tail
___pskb_trim
put_device
put_disk
__put_net
__put_page
put_pid
__put_task_struct
@@ -1347,6 +1423,7 @@
rb_first
rb_insert_color
rb_next
rcu_barrier
rcu_idle_enter
rcu_idle_exit
__rcu_read_lock
@@ -1364,10 +1441,15 @@
__register_chrdev
register_chrdev_region
register_die_notifier
register_inet6addr_notifier
register_inetaddr_notifier
register_kprobe
register_module_notifier
register_netdev
register_netdevice
register_netdevice_notifier
register_oom_notifier
register_pernet_device
register_pernet_subsys
register_pm_notifier
register_reboot_notifier
@@ -1394,6 +1476,7 @@
regulator_enable_regmap
regulator_get
regulator_get_current_limit_regmap
regulator_get_mode
regulator_get_optional
regulator_get_voltage
regulator_get_voltage_sel_regmap
@@ -1425,6 +1508,7 @@
remove_proc_subtree
remove_wait_queue
request_firmware
request_firmware_nowait
__request_percpu_irq
request_threaded_irq
reset_control_assert
@@ -1433,6 +1517,24 @@
reset_control_reset
resume_cpus
revalidate_disk_size
rfkill_alloc
rfkill_blocked
rfkill_destroy
rfkill_pause_polling
rfkill_register
rfkill_resume_polling
rfkill_set_hw_state
rfkill_unregister
rhashtable_free_and_destroy
rhashtable_insert_slow
rhltable_init
__rht_bucket_nested
rht_bucket_nested
rht_bucket_nested_insert
root_task_group
round_jiffies
round_jiffies_relative
round_jiffies_up
rpmsg_create_ept
rpmsg_destroy_ept
rpmsg_register_device
@@ -1454,6 +1556,9 @@
rtc_tm_to_time64
rtc_update_irq
rtc_valid_tm
rtnl_is_locked
rtnl_lock
rtnl_unlock
runqueues
sched_clock
sched_feat_keys
@@ -1464,13 +1569,18 @@
sched_uclamp_used
schedule
schedule_timeout
schedutil_cpu_util
scmi_driver_register
scmi_driver_unregister
scmi_protocol_register
scnprintf
scsi_autopm_get_device
scsi_autopm_put_device
scsi_device_get
scsi_device_put
scsi_device_quiesce
__scsi_execute
__scsi_iterate_devices
scsi_print_sense_hdr
sdio_signal_irq
send_sig
seq_hex_dump
@@ -1522,16 +1632,24 @@
single_open
single_release
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_ensure_writable
__skb_get_hash
__skb_gso_segment
skb_pull
skb_push
skb_put
skb_queue_head
skb_queue_purge
skb_queue_tail
skb_trim
smp_call_function
smp_call_function_single
snd_card_add_dev_attr
snd_ctl_boolean_mono_info
snd_jack_set_key
@@ -1585,6 +1703,8 @@
snprintf
soc_device_register
soc_device_unregister
__sock_create
sock_release
sort
__spi_alloc_controller
spi_bus_type
@@ -1615,11 +1735,13 @@
static_key_slow_dec
static_key_slow_inc
stop_one_cpu_nowait
stpcpy
strcasecmp
strchr
strcmp
strcpy
strcspn
strim
strlcat
strlcpy
strlen
@@ -1636,8 +1758,10 @@
strsep
strstr
suspend_set_ops
__sw_hweight16
__sw_hweight32
__sw_hweight64
__sw_hweight8
sync_file_create
sync_file_get_fence
synchronize_irq
@@ -1658,6 +1782,7 @@
sysfs_remove_link
sysfs_streq
system_freezable_power_efficient_wq
system_freezable_wq
system_freezing_cnt
system_highpri_wq
system_power_efficient_wq
@@ -1707,13 +1832,13 @@
__traceiter_android_rvh_setscheduler
__traceiter_android_rvh_set_user_nice
__traceiter_android_rvh_tick_entry
__traceiter_android_rvh_uclamp_eff_get
__traceiter_android_vh_alter_futex_plist_add
__traceiter_android_vh_alter_rwsem_list_add
__traceiter_android_vh_arch_set_freq_scale
__traceiter_android_vh_binder_restore_priority
__traceiter_android_vh_binder_set_priority
__traceiter_android_vh_binder_transaction_init
__traceiter_android_vh_cgroup_attach
__traceiter_android_vh_cgroup_set_task
__traceiter_android_vh_commit_creds
__traceiter_android_vh_em_cpu_energy
@@ -1721,7 +1846,6 @@
__traceiter_android_vh_finish_update_load_avg_se
__traceiter_android_vh_iommu_alloc_iova
__traceiter_android_vh_iommu_free_iova
__traceiter_android_vh_is_fpsimd_save
__traceiter_android_vh_logbuf
__traceiter_android_vh_override_creds
__traceiter_android_vh_prepare_update_load_avg_se
@@ -1749,7 +1873,7 @@
__traceiter_rwmmio_read
__traceiter_rwmmio_write
__traceiter_sched_update_nr_running_tp
__traceiter_task_newtask
__traceiter_xhci_urb_giveback
__tracepoint_android_rvh_cpu_overutilized
__tracepoint_android_rvh_dequeue_task
__tracepoint_android_rvh_dequeue_task_fair
@@ -1765,13 +1889,13 @@
__tracepoint_android_rvh_setscheduler
__tracepoint_android_rvh_set_user_nice
__tracepoint_android_rvh_tick_entry
__tracepoint_android_rvh_uclamp_eff_get
__tracepoint_android_vh_alter_futex_plist_add
__tracepoint_android_vh_alter_rwsem_list_add
__tracepoint_android_vh_arch_set_freq_scale
__tracepoint_android_vh_binder_restore_priority
__tracepoint_android_vh_binder_set_priority
__tracepoint_android_vh_binder_transaction_init
__tracepoint_android_vh_cgroup_attach
__tracepoint_android_vh_cgroup_set_task
__tracepoint_android_vh_commit_creds
__tracepoint_android_vh_em_cpu_energy
@@ -1779,7 +1903,6 @@
__tracepoint_android_vh_finish_update_load_avg_se
__tracepoint_android_vh_iommu_alloc_iova
__tracepoint_android_vh_iommu_free_iova
__tracepoint_android_vh_is_fpsimd_save
__tracepoint_android_vh_logbuf
__tracepoint_android_vh_override_creds
__tracepoint_android_vh_prepare_update_load_avg_se
@@ -1810,7 +1933,7 @@
__tracepoint_rwmmio_write
__tracepoint_sched_update_nr_running_tp
tracepoint_srcu
__tracepoint_task_newtask
__tracepoint_xhci_urb_giveback
trace_print_array_seq
trace_print_symbols_seq
__trace_puts
@@ -1862,6 +1985,7 @@
ufshcd_pltfrm_runtime_resume
ufshcd_pltfrm_runtime_suspend
ufshcd_pltfrm_suspend
ufshcd_read_desc_param
ufshcd_remove
ufshcd_shutdown
ufshcd_uic_hibern8_exit
@@ -1871,10 +1995,16 @@
__unregister_chrdev
unregister_chrdev_region
unregister_die_notifier
unregister_inet6addr_notifier
unregister_inetaddr_notifier
unregister_kprobe
unregister_module_notifier
unregister_netdev
unregister_netdevice_many
unregister_netdevice_notifier
unregister_netdevice_queue
unregister_oom_notifier
unregister_pernet_device
unregister_pernet_subsys
unregister_pm_notifier
unregister_reboot_notifier
@@ -1887,9 +2017,12 @@
update_rq_clock
up_read
up_write
usb_add_config
usb_add_function
usb_add_gadget_udc
usb_add_hcd
usb_composite_probe
usb_composite_unregister
usb_copy_descriptors
usb_create_hcd
usb_create_shared_hcd
@@ -1908,11 +2041,17 @@
usb_ep_set_maxpacket_limit
usb_function_register
usb_function_unregister
usb_gadget_connect
usb_gadget_disconnect
usb_gadget_giveback_request
usb_gadget_map_request
usb_gadget_probe_driver
usb_gadget_set_selfpowered
usb_gadget_set_state
usb_gadget_unmap_request
usb_get_dr_mode
usb_get_function
usb_get_function_instance
usb_get_maximum_speed
usb_hcd_is_primary_hcd
usb_hcd_poll_rh_status
@@ -1944,9 +2083,11 @@
usbnet_write_cmd
usbnet_write_cmd_async
usbnet_write_cmd_nopm
usb_put_function
usb_put_function_instance
usb_put_hcd
usb_register_driver
usb_remove_function
usb_remove_hcd
usb_role_switch_get
usb_role_switch_get_drvdata
@@ -1990,6 +2131,7 @@
v4l2_fh_init
v4l2_fh_is_singular
v4l2_fh_open
v4l2_i2c_subdev_init
v4l2_m2m_buf_queue
v4l2_m2m_buf_remove
v4l2_m2m_ctx_init
@@ -2054,6 +2196,7 @@
vchan_init
vchan_tx_desc_free
vchan_tx_submit
verify_pkcs7_signature
vfree
video_devdata
video_device_alloc
@@ -2105,6 +2248,7 @@
__warn_printk
watchdog_init_timeout
watchdog_set_restart_priority
wireless_nlevent_flush
woken_wake_function
work_busy
work_on_cpu
@@ -2120,7 +2264,6 @@
xhci_reset_bandwidth
# preserved by --additions-only
alloc_netdev_mqs
all_vm_events
__arch_clear_user
bio_add_pc_page
@@ -2131,12 +2274,14 @@
blk_mq_sched_mark_restart_hctx
blk_rq_append_bio
cache_line_size
cgroup_taskset_first
cgroup_taskset_next
class_create_file_ns
class_remove_file_ns
clear_page
cpufreq_update_util_data
cpu_pm_register_notifier
cpu_pm_unregister_notifier
debugfs_create_u8
debug_locks_off
devfreq_add_device
devfreq_cooling_unregister
@@ -2147,6 +2292,7 @@
devm_pinctrl_put
devm_rc_allocate_device
devm_rc_register_device
dev_pm_domain_attach_by_id
dev_pm_opp_find_freq_exact
dev_pm_opp_put_regulators
dev_pm_opp_set_regulators
@@ -2156,18 +2302,16 @@
dma_sync_single_for_device
downgrade_write
down_read_trylock
ether_setup
eth_type_trans
fsg_common_create_luns
fsg_common_set_cdev
fsg_common_set_inquiry_string
fsg_common_set_sysfs
fsg_config_from_params
gcd
genlmsg_put
genl_register_family
genl_unregister_family
get_freelist_nr_pages
drain_workqueue
fwnode_device_is_available
fwnode_get_name
fwnode_graph_get_next_endpoint
fwnode_graph_get_port_parent
fwnode_graph_get_remote_endpoint
fwnode_graph_get_remote_port_parent
fwnode_graph_parse_endpoint
fwnode_property_get_reference_args
fwnode_property_read_u64_array
get_user_pages_fast
gpiod_set_raw_value
hci_alloc_dev
@@ -2181,37 +2325,43 @@
jiffies_64_to_clock_t
__kfifo_init
kobject_del
kset_find_obj
kstrtobool_from_user
ktime_get_raw
led_classdev_unregister
media_entity_remote_pad
__media_entity_setup_link
media_graph_walk_next
media_graph_walk_start
media_request_get_by_fd
media_request_object_complete
media_request_put
memdup_user
__mmdrop
module_put
netif_tx_stop_all_queues
netlink_kernel_release
__nla_parse
nla_put
nla_put_nohdr
n_tty_ioctl_helper
of_devfreq_cooling_register_power
of_root
param_array_ops
param_ops_byte
param_ops_string
perf_num_counters
pin_user_pages_remote
platform_find_device_by_driver
put_task_stack
rb_prev
rb_replace_node
register_inetaddr_notifier
register_netdevice
register_netdevice_notifier
__release_region
request_firmware_nowait
__request_region
rtnl_is_locked
rtnl_lock
rtnl_unlock
rpmsg_find_device
rproc_boot
rproc_get_by_phandle
rproc_put
rproc_report_crash
rproc_shutdown
__sbitmap_queue_get
schedutil_cpu_util
sdio_claim_host
sdio_claim_irq
sdio_disable_func
@@ -2234,25 +2384,48 @@
send_sig_info
shmem_file_setup
si_meminfo
skb_dequeue
skb_pull_rcsum
skb_queue_head
skb_queue_purge
skb_realloc_headroom
smp_call_function
smp_call_function_single
snd_soc_component_test_bits
sprint_symbol_no_offset
stpcpy
strim
strpbrk
strspn
syscore_resume
syscore_suspend
system_long_wq
thermal_zone_device_update
__traceiter_android_rvh_after_enqueue_task
__traceiter_android_rvh_sched_rebalance_domains
__traceiter_android_vh_cgroup_attach
__traceiter_android_vh_clear_mask_adjust
__traceiter_android_vh_clear_reserved_fmt_fields
__traceiter_android_vh_fill_ext_fmtdesc
__traceiter_android_vh_ipv6_gen_linklocal_addr
__traceiter_android_vh_is_fpsimd_save
__traceiter_android_vh_media_device_setup_link
__traceiter_android_vh_v4l2subdev_set_fmt
__traceiter_android_vh_v4l2subdev_set_frame_interval
__traceiter_android_vh_v4l2subdev_set_selection
__traceiter_gpu_mem_total
__traceiter_task_newtask
trace_output_call
__tracepoint_android_rvh_after_enqueue_task
__tracepoint_android_rvh_sched_rebalance_domains
__tracepoint_android_vh_cgroup_attach
__tracepoint_android_vh_clear_mask_adjust
__tracepoint_android_vh_clear_reserved_fmt_fields
__tracepoint_android_vh_fill_ext_fmtdesc
__tracepoint_android_vh_ipv6_gen_linklocal_addr
__tracepoint_android_vh_is_fpsimd_save
__tracepoint_android_vh_media_device_setup_link
__tracepoint_android_vh_ufs_update_sdev
__tracepoint_android_vh_v4l2subdev_set_fmt
__tracepoint_android_vh_v4l2subdev_set_frame_interval
__tracepoint_android_vh_v4l2subdev_set_selection
__tracepoint_gpu_mem_total
__tracepoint_task_newtask
trace_print_flags_seq
try_module_get
tty_driver_flush_buffer
@@ -2261,26 +2434,25 @@
ufshcd_pltfrm_shutdown
unmap_mapping_range
unpin_user_page
unregister_inetaddr_notifier
unregister_netdevice_notifier
unregister_netdevice_queue
unregister_syscore_ops
usb_add_config
usb_composite_probe
usb_composite_unregister
usb_gadget_connect
usb_gadget_disconnect
usb_gadget_probe_driver
usb_gadget_set_selfpowered
usb_get_function
usb_get_function_instance
usb_put_function
usb_remove_function
v4l2_async_notifier_add_subdev
v4l2_async_notifier_cleanup
v4l2_async_subdev_notifier_register
v4l2_ctrl_find
v4l2_ctrl_g_ctrl
v4l2_ctrl_g_ctrl_int64
__v4l2_ctrl_modify_range
v4l2_ctrl_new_std_menu_items
v4l2_ctrl_request_setup
v4l2_ctrl_subdev_subscribe_event
__v4l2_find_nearest_size
v4l2_format_info
v4l2_m2m_buf_copy_metadata
v4l2_m2m_buf_remove_by_buf
v4l2_m2m_register_media_controller
v4l2_m2m_request_queue
v4l2_m2m_unregister_media_controller
v4l2_pipeline_link_notify
vmf_insert_pfn_prot
wait_for_completion_killable_timeout
wireless_send_event

File diff suppressed because it is too large Load Diff

View File

@@ -31,6 +31,7 @@
amba_bustype
amba_driver_register
amba_driver_unregister
android_debug_for_each_module
android_debug_per_cpu_symbol
android_debug_symbol
android_rvh_probe_register

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/arch/arm/OWNERS

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/arch/arm64/OWNERS

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/arch/x86/OWNERS

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/block/OWNERS

View File

@@ -4499,7 +4499,7 @@ check_queue:
bfqq = bfqq->bic->bfqq[0];
else if (bfq_bfqq_has_waker(bfqq) &&
bfq_bfqq_busy(bfqq->waker_bfqq) &&
bfqq->next_rq &&
bfqq->waker_bfqq->next_rq &&
bfq_serv_to_charge(bfqq->waker_bfqq->next_rq,
bfqq->waker_bfqq) <=
bfq_bfqq_budget_left(bfqq->waker_bfqq)

View File

@@ -15,6 +15,7 @@ android/abi_gki_aarch64_db845c
android/abi_gki_aarch64_qcom
android/abi_gki_aarch64_virtual_device
android/abi_gki_aarch64_hikey960
android/abi_gki_aarch64_galaxy
android/abi_gki_aarch64_generic
android/abi_gki_aarch64_exynos
android/abi_gki_aarch64_exynosauto
@@ -22,6 +23,7 @@ android/abi_gki_aarch64_mtk
android/abi_gki_aarch64_xiaomi
android/abi_gki_aarch64_fips140
android/abi_gki_aarch64_vivo
android/abi_gki_aarch64_oplus
"
FILES="${FILES}

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/crypto/OWNERS

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/drivers/OWNERS

View File

@@ -738,7 +738,7 @@ static void binder_transaction_priority(struct task_struct *task,
t->saved_priority.sched_policy = task->policy;
t->saved_priority.prio = task->normal_prio;
trace_android_vh_binder_transaction_priority_skip(task, &skip);
trace_android_vh_binder_priority_skip(task, &skip);
if (skip)
return;
@@ -2851,9 +2851,28 @@ static void binder_transaction(struct binder_proc *proc,
if (target_node && target_node->txn_security_ctx) {
u32 secid;
size_t added_size;
int max_retries = 100;
security_task_getsecid(proc->tsk, &secid);
retry_alloc:
ret = security_secid_to_secctx(secid, &secctx, &secctx_sz);
if (ret == -ENOMEM && max_retries-- > 0) {
struct page *dummy_page;
/*
* security_secid_to_secctx() can fail because of a
* GFP_ATOMIC allocation in which case -ENOMEM is
* returned. This needs to be retried, but there is
* currently no way to tell userspace to retry so we
* do it here. We make sure there is still available
* memory first and then retry.
*/
dummy_page = alloc_page(GFP_KERNEL);
if (dummy_page) {
__free_page(dummy_page);
goto retry_alloc;
}
}
if (ret) {
return_error = BR_FAILED_REPLY;
return_error_param = ret;

View File

@@ -98,7 +98,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_nf_conn_free);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_arch_set_freq_scale);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_transaction_init);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_transaction_priority_skip);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_priority_skip);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_set_priority);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_restore_priority);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wakeup_ilocked);
@@ -331,12 +331,16 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_task_comm);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpufreq_acct_update_power);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_typec_tcpm_log);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_media_device_setup_link);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_media_device_setup_link);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_clear_reserved_fmt_fields);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_fill_ext_fmtdesc);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_clear_mask_adjust);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_v4l2subdev_set_selection);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_v4l2subdev_set_selection);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_v4l2subdev_set_fmt);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_v4l2subdev_set_fmt);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_v4l2subdev_set_frame_interval);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_v4l2subdev_set_frame_interval);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scmi_timeout_sync);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_new_ilb);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_uid);

View File

@@ -98,12 +98,12 @@ static void dma_buf_release(struct dentry *dentry)
*/
BUG_ON(dmabuf->cb_shared.active || dmabuf->cb_excl.active);
dma_buf_stats_teardown(dmabuf);
dmabuf->ops->release(dmabuf);
if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
dma_resv_fini(dmabuf->resv);
dma_buf_stats_teardown(dmabuf);
module_put(dmabuf->owner);
kfree(dmabuf->name);
kfree(dmabuf);

View File

@@ -225,6 +225,7 @@ static long media_device_setup_link(struct media_device *mdev, void *arg)
/* Setup the link on both entities */
trace_android_vh_media_device_setup_link(link, linkd, &ret);
trace_android_rvh_media_device_setup_link(link, linkd, &ret);
if (ret)
return ret;

View File

@@ -497,6 +497,8 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)
trace_android_vh_v4l2subdev_set_fmt(sd, subdev_fh->pad,
format, &ret);
trace_android_rvh_v4l2subdev_set_fmt(sd, subdev_fh->pad,
format, &ret);
if (ret)
return ret;
@@ -576,6 +578,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)
return -EPERM;
trace_android_vh_v4l2subdev_set_frame_interval(sd, fi, &ret);
trace_android_rvh_v4l2subdev_set_frame_interval(sd, fi, &ret);
if (ret)
return ret;
@@ -608,6 +611,8 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)
trace_android_vh_v4l2subdev_set_selection(sd, subdev_fh->pad,
sel, &ret);
trace_android_rvh_v4l2subdev_set_selection(sd, subdev_fh->pad,
sel, &ret);
if (ret)
return ret;

View File

@@ -37,7 +37,7 @@
UTP_TASK_REQ_COMPL |\
UFSHCD_ERROR_MASK)
/* UIC command timeout, unit: ms */
#define UIC_CMD_TIMEOUT 500
#define UIC_CMD_TIMEOUT 5000
/* NOP OUT retries waiting for NOP IN response */
#define NOP_OUT_RETRIES 10

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/fs/OWNERS

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/fs/f2fs/OWNERS

View File

@@ -450,6 +450,15 @@ static int stat_show(struct seq_file *s, void *v)
si->data_segs, si->bg_data_segs);
seq_printf(s, " - node segments : %d (%d)\n",
si->node_segs, si->bg_node_segs);
seq_printf(s, " - Reclaimed segs : Normal (%d), Idle CB (%d), "
"Idle Greedy (%d), Idle AT (%d), "
"Urgent High (%d), Urgent Low (%d)\n",
si->sbi->gc_reclaimed_segs[GC_NORMAL],
si->sbi->gc_reclaimed_segs[GC_IDLE_CB],
si->sbi->gc_reclaimed_segs[GC_IDLE_GREEDY],
si->sbi->gc_reclaimed_segs[GC_IDLE_AT],
si->sbi->gc_reclaimed_segs[GC_URGENT_HIGH],
si->sbi->gc_reclaimed_segs[GC_URGENT_LOW]);
seq_printf(s, "Try to move %d blocks (BG: %d)\n", si->tot_blks,
si->bg_data_blks + si->bg_node_blks);
seq_printf(s, " - data blocks : %d (%d)\n", si->data_blks,

View File

@@ -1251,6 +1251,7 @@ enum {
GC_IDLE_AT,
GC_URGENT_HIGH,
GC_URGENT_LOW,
MAX_GC_MODE,
};
enum {
@@ -1731,6 +1732,10 @@ struct f2fs_sb_info {
struct kmem_cache *inline_xattr_slab; /* inline xattr entry */
unsigned int inline_xattr_slab_size; /* default inline xattr slab size */
/* For reclaimed segs statistics per each GC mode */
unsigned int gc_segment_mode; /* GC state for reclaimed segments */
unsigned int gc_reclaimed_segs[MAX_GC_MODE]; /* Reclaimed segs for each mode */
#ifdef CONFIG_F2FS_FS_COMPRESSION
struct kmem_cache *page_array_slab; /* page array entry */
unsigned int page_array_slab_size; /* default page array slab size */

View File

@@ -1646,6 +1646,7 @@ static int do_garbage_collect(struct f2fs_sb_info *sbi,
force_migrate);
stat_inc_seg_count(sbi, type, gc_type);
sbi->gc_reclaimed_segs[sbi->gc_mode]++;
migrated++;
freed:

View File

@@ -307,6 +307,14 @@ static ssize_t f2fs_sbi_show(struct f2fs_attr *a,
return sysfs_emit(buf, "%u\n", sbi->compr_new_inode);
#endif
if (!strcmp(a->attr.name, "gc_segment_mode"))
return sysfs_emit(buf, "%u\n", sbi->gc_segment_mode);
if (!strcmp(a->attr.name, "gc_reclaimed_segments")) {
return sysfs_emit(buf, "%u\n",
sbi->gc_reclaimed_segs[sbi->gc_segment_mode]);
}
ui = (unsigned int *)(ptr + a->offset);
return sprintf(buf, "%u\n", *ui);
@@ -515,6 +523,21 @@ out:
return count;
}
if (!strcmp(a->attr.name, "gc_segment_mode")) {
if (t < MAX_GC_MODE)
sbi->gc_segment_mode = t;
else
return -EINVAL;
return count;
}
if (!strcmp(a->attr.name, "gc_reclaimed_segments")) {
if (t != 0)
return -EINVAL;
sbi->gc_reclaimed_segs[sbi->gc_segment_mode] = 0;
return count;
}
*ui = (unsigned int)t;
return count;
@@ -740,6 +763,9 @@ F2FS_RW_ATTR(ATGC_INFO, atgc_management, atgc_candidate_count, max_candidate_cou
F2FS_RW_ATTR(ATGC_INFO, atgc_management, atgc_age_weight, age_weight);
F2FS_RW_ATTR(ATGC_INFO, atgc_management, atgc_age_threshold, age_threshold);
F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, gc_segment_mode, gc_segment_mode);
F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, gc_reclaimed_segments, gc_reclaimed_segs);
#define ATTR_LIST(name) (&f2fs_attr_##name.attr)
static struct attribute *f2fs_attrs[] = {
ATTR_LIST(gc_urgent_sleep_time),
@@ -812,6 +838,8 @@ static struct attribute *f2fs_attrs[] = {
ATTR_LIST(atgc_candidate_count),
ATTR_LIST(atgc_age_weight),
ATTR_LIST(atgc_age_threshold),
ATTR_LIST(gc_segment_mode),
ATTR_LIST(gc_reclaimed_segments),
NULL,
};
ATTRIBUTE_GROUPS(f2fs);

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/fs/fuse/OWNERS

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/fs/incfs/OWNERS

View File

@@ -635,20 +635,28 @@ static int ramoops_parse_dt(struct platform_device *pdev,
struct device_node *of_node = pdev->dev.of_node;
struct device_node *parent_node;
struct reserved_mem *rmem;
struct resource *res;
u32 value;
int ret;
dev_dbg(&pdev->dev, "using Device Tree\n");
rmem = of_reserved_mem_lookup(of_node);
if (!rmem) {
dev_err(&pdev->dev,
"failed to locate DT /reserved-memory resource\n");
return -EINVAL;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
rmem = of_reserved_mem_lookup(of_node);
if (rmem) {
pdata->mem_size = rmem->size;
pdata->mem_address = rmem->base;
} else {
dev_err(&pdev->dev,
"failed to locate DT /reserved-memory resource\n");
return -EINVAL;
}
} else {
pdata->mem_size = resource_size(res);
pdata->mem_address = res->start;
}
pdata->mem_size = rmem->size;
pdata->mem_address = rmem->base;
/*
* Setting "unbuffered" is deprecated and will be ignored if
* "mem_type" is also specified.

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/include/OWNERS

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/include/linux/OWNERS

View File

@@ -50,6 +50,9 @@ enum android_debug_per_cpu_symbol {
void *android_debug_symbol(enum android_debug_symbol symbol);
void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol);
void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr, void *data),
void *data);
#else /* !CONFIG_ANDROID_DEBUG_SYMBOLS */
static inline void *android_debug_symbol(enum android_debug_symbol symbol)
@@ -60,6 +63,9 @@ static inline void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symb
{
return NULL;
}
static inline void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr,
void *data), void *data) {}
#endif /* CONFIG_ANDROID_DEBUG_SYMBOLS */
#endif /* _ANDROID_DEBUG_SYMBOLS_H */

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/include/trace/events/OWNERS

View File

@@ -21,7 +21,7 @@ struct seq_file;
DECLARE_HOOK(android_vh_binder_transaction_init,
TP_PROTO(struct binder_transaction *t),
TP_ARGS(t));
DECLARE_HOOK(android_vh_binder_transaction_priority_skip,
DECLARE_HOOK(android_vh_binder_priority_skip,
TP_PROTO(struct task_struct *task, bool *skip),
TP_ARGS(task, skip));
DECLARE_HOOK(android_vh_binder_set_priority,

View File

@@ -5,7 +5,7 @@
#define TRACE_INCLUDE_PATH trace/hooks
#if !defined(_TRACE_HOOK_V4L2CORE_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_V4L2_CORE_H
#define _TRACE_HOOK_V4L2CORE_H
#include <linux/tracepoint.h>
#include <trace/hooks/vendor_hooks.h>
@@ -44,6 +44,21 @@ DECLARE_HOOK(android_vh_v4l2subdev_set_frame_interval,
int *ret),
TP_ARGS(sd, fi, ret));
DECLARE_RESTRICTED_HOOK(android_rvh_v4l2subdev_set_selection,
TP_PROTO(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *pad,
struct v4l2_subdev_selection *sel, int *ret),
TP_ARGS(sd, pad, sel, ret), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_v4l2subdev_set_fmt,
TP_PROTO(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *pad,
struct v4l2_subdev_format *format, int *ret),
TP_ARGS(sd, pad, format, ret), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_v4l2subdev_set_frame_interval,
TP_PROTO(struct v4l2_subdev *sd, struct v4l2_subdev_frame_interval *fi,
int *ret),
TP_ARGS(sd, fi, ret), 1);
#endif /* _TRACE_HOOK_V4L2CORE_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@@ -16,6 +16,11 @@ DECLARE_HOOK(android_vh_media_device_setup_link,
TP_PROTO(struct media_link *link, struct media_link_desc *linkd, int *ret),
TP_ARGS(link, linkd, ret));
DECLARE_RESTRICTED_HOOK(android_rvh_media_device_setup_link,
TP_PROTO(struct media_link *link,
struct media_link_desc *linkd, int *ret),
TP_ARGS(link, linkd, ret), 1);
#endif /* _TRACE_HOOK_V4L2MC_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/include/uapi/linux/OWNERS

View File

@@ -4792,6 +4792,23 @@ void print_modules(void)
pr_cont("\n");
}
#ifdef CONFIG_ANDROID_DEBUG_SYMBOLS
void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr, void *data),
void *data)
{
struct module *module;
preempt_disable();
list_for_each_entry_rcu(module, &modules, list) {
if (fn(module->name, module->core_layout.base, data))
goto out;
}
out:
preempt_enable();
}
EXPORT_SYMBOL_GPL(android_debug_for_each_module);
#endif
#ifdef CONFIG_MODVERSIONS
/* Generate the signature for all relevant module structures here.
* If these change, we don't want to try to parse the module. */

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/kernel/sched/OWNERS

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/mm/OWNERS

View File

@@ -1914,20 +1914,28 @@ static bool kswapd_is_running(pg_data_t *pgdat)
/*
* A zone's fragmentation score is the external fragmentation wrt to the
* COMPACTION_HPAGE_ORDER scaled by the zone's size. It returns a value
* in the range [0, 100].
* COMPACTION_HPAGE_ORDER. It returns a value in the range [0, 100].
*/
static unsigned int fragmentation_score_zone(struct zone *zone)
{
return extfrag_for_order(zone, COMPACTION_HPAGE_ORDER);
}
/*
* A weighted zone's fragmentation score is the external fragmentation
* wrt to the COMPACTION_HPAGE_ORDER scaled by the zone's size. It
* returns a value in the range [0, 100].
*
* The scaling factor ensures that proactive compaction focuses on larger
* zones like ZONE_NORMAL, rather than smaller, specialized zones like
* ZONE_DMA32. For smaller zones, the score value remains close to zero,
* and thus never exceeds the high threshold for proactive compaction.
*/
static unsigned int fragmentation_score_zone(struct zone *zone)
static unsigned int fragmentation_score_zone_weighted(struct zone *zone)
{
unsigned long score;
score = zone->present_pages *
extfrag_for_order(zone, COMPACTION_HPAGE_ORDER);
score = zone->present_pages * fragmentation_score_zone(zone);
return div64_ul(score, zone->zone_pgdat->node_present_pages + 1);
}
@@ -1947,7 +1955,7 @@ static unsigned int fragmentation_score_node(pg_data_t *pgdat)
struct zone *zone;
zone = &pgdat->node_zones[zoneid];
score += fragmentation_score_zone(zone);
score += fragmentation_score_zone_weighted(zone);
}
return score;

View File

@@ -9,6 +9,7 @@
#ifdef CONFIG_KASAN_HW_TAGS
#include <linux/static_key.h>
#include "../slab.h"
DECLARE_STATIC_KEY_FALSE(kasan_flag_stacktrace);
extern bool kasan_flag_async __ro_after_init;
@@ -387,6 +388,17 @@ static inline void kasan_unpoison(const void *addr, size_t size, bool init)
if (WARN_ON((unsigned long)addr & KASAN_GRANULE_MASK))
return;
/*
* Explicitly initialize the memory with the precise object size to
* avoid overwriting the SLAB redzone. This disables initialization in
* the arch code and may thus lead to performance penalty. The penalty
* is accepted since SLAB redzones aren't enabled in production builds.
*/
if (__slub_debug_enabled() &&
init && ((unsigned long)size & KASAN_GRANULE_MASK)) {
init = false;
memzero_explicit((void *)addr, size);
}
size = round_up(size, KASAN_GRANULE_SIZE);
hw_set_mem_tag_range((void *)addr, size, tag, init);

View File

@@ -733,6 +733,22 @@ void kfence_shutdown_cache(struct kmem_cache *s)
void *__kfence_alloc(struct kmem_cache *s, size_t size, gfp_t flags)
{
/*
* Perform size check before switching kfence_allocation_gate, so that
* we don't disable KFENCE without making an allocation.
*/
if (size > PAGE_SIZE)
return NULL;
/*
* Skip allocations from non-default zones, including DMA. We cannot
* guarantee that pages in the KFENCE pool will have the requested
* properties (e.g. reside in DMAable memory).
*/
if ((flags & GFP_ZONEMASK) ||
(s->flags & (SLAB_CACHE_DMA | SLAB_CACHE_DMA32)))
return NULL;
/*
* allocation_gate only needs to become non-zero, so it doesn't make
* sense to continue writing to it and pay the associated contention
@@ -757,9 +773,6 @@ void *__kfence_alloc(struct kmem_cache *s, size_t size, gfp_t flags)
if (!READ_ONCE(kfence_enabled))
return NULL;
if (size > PAGE_SIZE)
return NULL;
return kfence_guarded_alloc(s, size, flags);
}

View File

@@ -439,7 +439,7 @@ unsigned long move_page_tables(struct vm_area_struct *vma,
if (!new_pud)
break;
if (move_pgt_entry(NORMAL_PUD, vma, old_addr, new_addr,
old_pud, new_pud, need_rmap_locks))
old_pud, new_pud, true))
continue;
}
@@ -466,7 +466,7 @@ unsigned long move_page_tables(struct vm_area_struct *vma,
* moving at the PMD level if possible.
*/
if (move_pgt_entry(NORMAL_PMD, vma, old_addr, new_addr,
old_pmd, new_pmd, need_rmap_locks))
old_pmd, new_pmd, true))
continue;
}

View File

@@ -2359,6 +2359,13 @@ inline void post_alloc_hook(struct page *page, unsigned int order,
arch_alloc_page(page, order);
debug_pagealloc_map_pages(page, 1 << order);
/*
* Page unpoisoning must happen before memory initialization.
* Otherwise, the poison pattern will be overwritten for __GFP_ZERO
* allocations and the page unpoisoning code will complain.
*/
kernel_unpoison_pages(page, 1 << order);
/*
* As memory initialization might be integrated into KASAN,
* kasan_alloc_pages and kernel_init_free_pages must be
@@ -2375,7 +2382,6 @@ inline void post_alloc_hook(struct page *page, unsigned int order,
gfp_flags & __GFP_ZEROTAGS);
}
kernel_unpoison_pages(page, 1 << order);
set_page_owner(page, order, gfp_flags);
}

View File

@@ -77,12 +77,14 @@ static void unpoison_page(struct page *page)
void *addr;
addr = kmap_atomic(page);
kasan_disable_current();
/*
* Page poisoning when enabled poisons each and every page
* that is freed to buddy. Thus no extra check is done to
* see if a page was poisoned.
*/
check_poison_mem(addr, PAGE_SIZE);
check_poison_mem(kasan_reset_tag(addr), PAGE_SIZE);
kasan_enable_current();
kunmap_atomic(addr);
}

View File

@@ -242,10 +242,18 @@ extern unsigned long get_each_object_track(struct kmem_cache *s,
int (*fn)(const struct kmem_cache *, const void *,
const struct track *, void *), void *private);
extern slab_flags_t slub_debug;
static inline bool __slub_debug_enabled(void)
{
return static_branch_unlikely(&slub_debug_enabled);
}
#else
static inline void print_tracking(struct kmem_cache *s, void *object)
{
}
static inline bool __slub_debug_enabled(void)
{
return false;
}
#ifdef CONFIG_SLUB
static inline unsigned long get_each_object_track(struct kmem_cache *s,
struct page *page, enum track_item alloc,
@@ -264,11 +272,10 @@ static inline unsigned long get_each_object_track(struct kmem_cache *s,
*/
static inline bool kmem_cache_debug_flags(struct kmem_cache *s, slab_flags_t flags)
{
#ifdef CONFIG_SLUB_DEBUG
VM_WARN_ON_ONCE(!(flags & SLAB_DEBUG_FLAGS));
if (static_branch_unlikely(&slub_debug_enabled))
if (IS_ENABLED(CONFIG_SLUB_DEBUG))
VM_WARN_ON_ONCE(!(flags & SLAB_DEBUG_FLAGS));
if (__slub_debug_enabled())
return s->flags & flags;
#endif
return false;
}

View File

@@ -327,6 +327,7 @@ int map_kernel_range(unsigned long start, unsigned long size, pgprot_t prot,
flush_cache_vmap(start, start + size);
return ret;
}
EXPORT_SYMBOL_GPL(map_kernel_range);
int is_vmalloc_or_module_addr(const void *x)
{
@@ -2100,6 +2101,7 @@ struct vm_struct *__get_vm_area_caller(unsigned long size, unsigned long flags,
return __get_vm_area_node(size, 1, flags, start, end, NUMA_NO_NODE,
GFP_KERNEL, caller);
}
EXPORT_SYMBOL_GPL(__get_vm_area_caller);
/**
* get_vm_area - reserve a contiguous kernel virtual area

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/net/OWNERS

View File

@@ -1,2 +0,0 @@
# include OWNERS from the authoritative android-mainline branch
include kernel/common:android-mainline:/tools/testing/selftests/filesystems/incfs/OWNERS