You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
Merge branch 'android12-5.10' into android12-5.10-lts
Sync up with android12-5.10 for the following commits:c82b315c4bANDROID: GKI: rockchip: Enable symbols for phyc10e63b794ANDROID: GKI: rockchip: Enable symbols for rockchip-opp54a33334deANDROID: GKI: rockchip: Enable symbols for sdhci-arasan6276cc3982ANDROID: GKI: rockchip: Enable symbols for devfreqa195017de8ANDROID: GKI: rockchip: Enable symbols for gpio-rockchip068f20142aANDROID: GKI: rockchip: Enable symbol for pm-domain6cef9b2952ANDROID: GKI: rockchip: Enable symbols for common clkfd41ec3b94ANDROID: GKI: rockchip: Enable symbols for rtc-rk8087827c05b00ANDROID: GKI: rockchip: Enable symbol for panel-simple229f9c2fafANDROID: GKI: rockchip: Enable symbol for ov569594f76a7779ANDROID: GKI: rockchip: Enable symbol for nvme4275c37d4eANDROID: GKI: rockchip: Enable symbols for iiobe153f6250ANDROID: GKI: rockchip: Enable symbol for cw2015_batterya90c09dd41ANDROID: GKI: rockchip: Enable symbols for mmc driverf1e23eee85ANDROID: GKI: rockchip: Enable symbols for cpufreq governor5f020167d0ANDROID: GKI: rockchip: Enable symbols for scsi ch64665afcb3ANDROID: GKI: rockchip: Enable symbols for adc-keysb37b3c9eaaANDROID: GKI: rockchip: Enable symbol for act886521034d71fcANDROID: GKI: rockchip: Enable symbols for pwm_bl576c7a6297ANDROID: GKI: rockchip: Enable symbols for phyfc1e452fa3ANDROID: GKI: rockchip: Enable symbols for LED hardbeatf4b3d35dfaFROMLIST: scsi: ufs: Fix task management completion7b6860d2a4ANDROID: scsi: ufs: Rename struct ufs_hba_with_hpb into ufs_hba_add_info5adc3c4124ANDROID: Update the ABI representatione774e4eca6ANDROID: scsi: ufs: add complete init vendor hook7050ead570ANDROID: qcom: Add qdisc related symbolsd788d16fedFROMGIT: scs: Release kasan vmalloc poison in scs_free process2659f14d93UPSTREAM: arm64: Kconfig: select KASAN_VMALLOC if KANSAN_GENERIC is enabled23232f84c8UPSTREAM: arm64: kaslr: support randomized module area with KASAN_VMALLOCef61240f62UPSTREAM: arm64: Kconfig: support CONFIG_KASAN_VMALLOCd0f4b61ae6UPSTREAM: arm64: kasan: abstract _text and _end to KERNEL_START/END4d91b1f6eeUPSTREAM: arm64: kasan: don't populate vmalloc area for CONFIG_KASAN_VMALLOC935b5c3bddANDROID: GKI: rockchip: Enable symbols for rk808-regulator9a8a15b8bdANDROID: GKI: rockchip: Enable symbols for hid55b0b34791FROMGIT: arm64: kasan: mte: move GCR_EL1 switch to task switch when KASAN disabled6c6d1d7e42UPSTREAM: arm64: add MTE supported check to thread switching and syscall entry/exitf746714fe4UPSTREAM: arm64: kasan: mte: use a constant kernel GCR_EL1 valueeb02ea0e35ANDROID: GKI: fix mode of android/abi_gki_aarch64.xml file62ad82b86bANDROID: ABI: update allowed list for galaxyf1a5448fa7ANDROID: GKI: rockchip: Convert symbol to order by module18d90d0300ANDROID: GKI: Add a symbol to symbol listcb7a5d58a9FROMLIST: arm64: mm: update max_pfn after memory hotplug477cd8fd78ANDROID: GKI: Update symbols to symbol listdcd77f0b74UPSTREAM: erofs: fix 1 lcluster-sized pcluster for big pclustere085d3f0d0UPSTREAM: erofs: enable big pcluster featureed0607cc52UPSTREAM: erofs: support decompress big pcluster for lz4 backendd34cb6cdc0UPSTREAM: erofs: support parsing big pcluster compact indexes051d76b899UPSTREAM: erofs: support parsing big pcluster compress indexesd149931601UPSTREAM: erofs: adjust per-CPU buffers according to max_pclusterblks95a1d5df84UPSTREAM: erofs: add big physical cluster definition8043aaed1dUPSTREAM: erofs: fix up inplace I/O pointer for big pcluster6ad2f8f169UPSTREAM: erofs: introduce physical cluster slab pools432f58b100UPSTREAM: erofs: introduce multipage per-CPU buffers571c9a0bd3UPSTREAM: erofs: remove a void EROFS_VERSION macro set in Makefile431d73396dUPSTREAM: erofs: reserve physical_clusterbits[]89dbc6246aUPSTREAM: erofs: Clean up spelling mistakes found in fs/erofsac1f14e9d5UPSTREAM: erofs: add on-disk compression configurationscd21e62366UPSTREAM: erofs: introduce on-disk lz4 fs configurationse17fd2ac9dUPSTREAM: erofs: introduce erofs_sb_has_xxx() helpersba1a3d1fb2UPSTREAM: erofs: don't use erofs_map_blocks() any more384b2cdaf8UPSTREAM: erofs: complete a missing case for inplace I/Oa9ac6ae90eBACKPORT: UPSTREAM: mm: fs: invalidate bh_lrus for only cold path49af2e35d5FROMLIST: dma-buf: support users to change dma_buf.name3b1f439841ANDROID: GKI: Update symbol list for vivoc82dbcbec1BACKPORT: ASoC: soc-pcm: Get all BEs along DAPM pathde7ca5e752ANDROID: Disable CFI on trace hooks38532a9f24ANDROID: GKI: Update symbol list for new modules099e8c7741ANDROID: Update symbol list for mtkcfc0a49c73ANDROID: fs/fuse: Keep FUSE file times consistent with lower filecdbeb135e5ANDROID: GKI: Update symbols to symbol list66e24eb093Revert "ANDROID: mm: page_pinner: use EXPORT_SYMBOL_GPL"5f10883630Revert "FROMLIST: USB: gadget: f_fs: add SuperSpeed Plus support"4e6242598dUPSTREAM: drm/dp_mst: Fix return code on sideband message failurebb13ff0598BACKPORT: FROMGIT: usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind0671bafa24UPSTREAM: tracing: Fix NULL pointer dereference in start_creatingaae44f81e3ANDROID: enable MTK RNDISf278b215d4ANDROID: abi_gki_aarch64_qcom: Add 2 new symbols for gsie21fe3ef80ANDROID: Update the ABI representationb74189ec8bANDROID: GKI: Update abi_gki_aarch64_qcom for rtc_tm_to_ktime and rtc_ktime_to_tm4652709913ANDROID: fuse: Allocate zeroed memory for canonical path96db9b84a6FROMGIT: f2fs: should use GFP_NOFS for directory inodes96beb15eb2UPSTREAM: mm, slub: move slub_debug static key enabling outside slab_mutex9f821f9789UPSTREAM: mm, slub: enable slub_debug static key when creating cache with explicit debug flagsbcbaadf442UPSTREAM: PM: sleep: core: Avoid setting power.must_resume to falseba98a3a1bbBACKPORT: FROMGIT: usb: gadget: f_uac2: Populate SS descriptors' wBytesPerIntervald9e738916eBACKPORT: FROMGIT: usb: gadget: f_uac2: Add missing companion descriptor for feedback EP6773d5cd77Revert "FROMLIST: usb: gadget: f_uac2: Add missing companion descriptor for feedback EP"e6e66cb3ddANDROID: Update the ABI representation5a4ed990f2FROMGIT: binder: make sure fd closes completeb55536ba69ANDROID: abi_gki_aarch64_qcom: Add vsock functions4d9d866fe5ANDROID: mm: unlock the page on speculative fault retryfd2214199aFROMGIT: binder: fix freeze racefca745e32dFROMLIST: dm-verity: skip verity_handle_error on I/O errors640610dbc4UPSTREAM: thermal: cpufreq_cooling: Update also offline CPUs per-cpu thermal_pressure Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I2534965b25926060feaac05e1ae2821e6a12cc45
This commit is contained in:
@@ -94,8 +94,11 @@ __ethtool_get_link_ksettings
|
||||
__fdget
|
||||
__flush_icache_range
|
||||
__free_pages
|
||||
__genphy_config_aneg
|
||||
__get_free_pages
|
||||
__get_task_comm
|
||||
__hid_register_driver
|
||||
__hid_request
|
||||
__hrtimer_get_remaining
|
||||
__hvc_resize
|
||||
__hwspin_lock_timeout
|
||||
@@ -343,6 +346,8 @@ __traceiter_gpu_mem_total
|
||||
__traceiter_sched_util_est_se_tp
|
||||
__traceiter_xdp_exception
|
||||
__tracepoint_android_rvh_account_irq
|
||||
__tracepoint_android_rvh_arm64_serror_panic
|
||||
__tracepoint_android_rvh_bad_mode
|
||||
__tracepoint_android_rvh_build_perf_domains
|
||||
__tracepoint_android_rvh_can_migrate_task
|
||||
__tracepoint_android_rvh_check_preempt_wakeup
|
||||
@@ -352,9 +357,12 @@ __tracepoint_android_rvh_cpu_cgroup_online
|
||||
__tracepoint_android_rvh_cpu_overutilized
|
||||
__tracepoint_android_rvh_cpufreq_transition
|
||||
__tracepoint_android_rvh_dequeue_task
|
||||
__tracepoint_android_rvh_dequeue_task_idle
|
||||
__tracepoint_android_rvh_die_kernel_fault
|
||||
__tracepoint_android_rvh_do_mem_abort
|
||||
__tracepoint_android_rvh_do_sea
|
||||
__tracepoint_android_rvh_do_sp_pc_abort
|
||||
__tracepoint_android_rvh_do_undefinstr
|
||||
__tracepoint_android_rvh_enqueue_task
|
||||
__tracepoint_android_rvh_find_busiest_queue
|
||||
__tracepoint_android_rvh_find_energy_efficient_cpu
|
||||
@@ -408,6 +416,7 @@ __tracepoint_android_vh_binder_restore_priority
|
||||
__tracepoint_android_vh_binder_set_priority
|
||||
__tracepoint_android_vh_binder_transaction_init
|
||||
__tracepoint_android_vh_binder_wakeup_ilocked
|
||||
__tracepoint_android_vh_cgroup_attach
|
||||
__tracepoint_android_vh_cma_alloc_finish
|
||||
__tracepoint_android_vh_cma_alloc_start
|
||||
__tracepoint_android_vh_cpu_idle_enter
|
||||
@@ -429,10 +438,19 @@ __tracepoint_android_vh_kfree_skb
|
||||
__tracepoint_android_vh_logbuf
|
||||
__tracepoint_android_vh_logbuf_pr_cont
|
||||
__tracepoint_android_vh_meminfo_proc_show
|
||||
__tracepoint_android_vh_mutex_wait_finish
|
||||
__tracepoint_android_vh_mutex_wait_start
|
||||
__tracepoint_android_vh_pagecache_get_page
|
||||
__tracepoint_android_vh_printk_hotplug
|
||||
__tracepoint_android_vh_ptype_head
|
||||
__tracepoint_android_vh_rmqueue
|
||||
__tracepoint_android_vh_rtmutex_wait_finish
|
||||
__tracepoint_android_vh_rtmutex_wait_start
|
||||
__tracepoint_android_vh_rwsem_read_wait_finish
|
||||
__tracepoint_android_vh_rwsem_read_wait_start
|
||||
__tracepoint_android_vh_rwsem_write_wait_finish
|
||||
__tracepoint_android_vh_rwsem_write_wait_start
|
||||
__tracepoint_android_vh_sched_show_task
|
||||
__tracepoint_android_vh_scheduler_tick
|
||||
__tracepoint_android_vh_show_max_freq
|
||||
__tracepoint_android_vh_show_mem
|
||||
@@ -440,6 +458,8 @@ __tracepoint_android_vh_show_resume_epoch_val
|
||||
__tracepoint_android_vh_show_suspend_epoch_val
|
||||
__tracepoint_android_vh_timer_calc_index
|
||||
__tracepoint_android_vh_timerfd_create
|
||||
__tracepoint_android_vh_try_to_freeze_todo
|
||||
__tracepoint_android_vh_try_to_freeze_todo_unfrozen
|
||||
__tracepoint_android_vh_typec_store_partner_src_caps
|
||||
__tracepoint_android_vh_typec_tcpci_override_toggling
|
||||
__tracepoint_android_vh_typec_tcpm_adj_current_limit
|
||||
@@ -453,6 +473,8 @@ __tracepoint_android_vh_ufs_send_tm_command
|
||||
__tracepoint_android_vh_ufs_send_uic_command
|
||||
__tracepoint_android_vh_ufs_update_sdev
|
||||
__tracepoint_android_vh_ufs_update_sysfs
|
||||
__tracepoint_android_vh_watchdog_timer_softlockup
|
||||
__tracepoint_android_vh_wq_lockup_pool
|
||||
__tracepoint_binder_transaction_received
|
||||
__tracepoint_clock_set_rate
|
||||
__tracepoint_cpu_frequency
|
||||
@@ -489,12 +511,14 @@ __tracepoint_suspend_resume
|
||||
__tracepoint_workqueue_execute_end
|
||||
__tracepoint_workqueue_execute_start
|
||||
__tracepoint_xdp_exception
|
||||
__tty_alloc_driver
|
||||
__tty_insert_flip_char
|
||||
__udelay
|
||||
__uio_register_device
|
||||
__unregister_chrdev
|
||||
__update_load_avg_blocked_se
|
||||
__usb_create_hcd
|
||||
__usb_get_extra_descriptor
|
||||
__usecs_to_jiffies
|
||||
__v4l2_device_register_subdev_nodes
|
||||
__video_register_device
|
||||
@@ -774,6 +798,14 @@ cancel_delayed_work
|
||||
cancel_delayed_work_sync
|
||||
cancel_work_sync
|
||||
capable
|
||||
cdc_ncm_bind_common
|
||||
cdc_ncm_change_mtu
|
||||
cdc_ncm_fill_tx_frame
|
||||
cdc_ncm_rx_verify_ndp16
|
||||
cdc_ncm_rx_verify_nth16
|
||||
cdc_ncm_select_altsetting
|
||||
cdc_ncm_unbind
|
||||
cdc_parse_cdc_header
|
||||
cdev_add
|
||||
cdev_alloc
|
||||
cdev_del
|
||||
@@ -946,6 +978,7 @@ cpumask_next_wrap
|
||||
cpupri_find_fitness
|
||||
cpus_read_lock
|
||||
cpus_read_unlock
|
||||
crc16
|
||||
crc32_le
|
||||
crc8
|
||||
crc8_populate_msb
|
||||
@@ -1051,6 +1084,7 @@ dev_pm_opp_adjust_voltage
|
||||
dev_pm_opp_disable
|
||||
dev_pm_opp_enable
|
||||
dev_pm_opp_find_freq_ceil
|
||||
dev_pm_opp_find_freq_ceil_by_volt
|
||||
dev_pm_opp_find_freq_exact
|
||||
dev_pm_opp_find_freq_floor
|
||||
dev_pm_opp_free_cpufreq_table
|
||||
@@ -1389,6 +1423,7 @@ down_write
|
||||
downgrade_write
|
||||
dput
|
||||
drain_workqueue
|
||||
driver_attach
|
||||
driver_create_file
|
||||
driver_find_device
|
||||
driver_register
|
||||
@@ -1691,6 +1726,7 @@ drm_mode_object_put
|
||||
drm_mode_probed_add
|
||||
drm_mode_set_crtcinfo
|
||||
drm_mode_set_name
|
||||
drm_mode_sort
|
||||
drm_mode_vrefresh
|
||||
drm_modeset_acquire_fini
|
||||
drm_modeset_acquire_init
|
||||
@@ -1919,7 +1955,10 @@ genl_notify
|
||||
genl_register_family
|
||||
genl_unregister_family
|
||||
genlmsg_put
|
||||
genphy_read_status
|
||||
genphy_resume
|
||||
genphy_soft_reset
|
||||
genphy_suspend
|
||||
get_cpu_device
|
||||
get_cpu_idle_time
|
||||
get_cpu_idle_time_us
|
||||
@@ -2028,6 +2067,13 @@ hdmi_infoframe_pack
|
||||
hex2bin
|
||||
hex_dump_to_buffer
|
||||
hex_to_bin
|
||||
hid_hw_close
|
||||
hid_hw_open
|
||||
hid_hw_start
|
||||
hid_hw_stop
|
||||
hid_open_report
|
||||
hid_report_raw_event
|
||||
hid_unregister_driver
|
||||
hmm_range_fault
|
||||
hrtimer_active
|
||||
hrtimer_cancel
|
||||
@@ -2135,6 +2181,7 @@ iio_read_channel_processed
|
||||
iio_read_channel_raw
|
||||
import_iovec
|
||||
in4_pton
|
||||
in6_dev_finish_destroy
|
||||
in6_pton
|
||||
in_aton
|
||||
in_egroup_p
|
||||
@@ -2156,6 +2203,7 @@ input_allocate_device
|
||||
input_close_device
|
||||
input_event
|
||||
input_ff_create
|
||||
input_ff_create_memless
|
||||
input_ff_destroy
|
||||
input_free_device
|
||||
input_mt_assign_slots
|
||||
@@ -2315,6 +2363,7 @@ kernel_sendmsg
|
||||
kernel_sigaction
|
||||
kernfs_find_and_get_ns
|
||||
kernfs_notify
|
||||
kernfs_path_from_node
|
||||
kernfs_put
|
||||
kfree
|
||||
kfree_const
|
||||
@@ -2353,6 +2402,7 @@ kobject_uevent
|
||||
kobject_uevent_env
|
||||
krealloc
|
||||
kset_create_and_add
|
||||
kset_unregister
|
||||
ksize
|
||||
ksoftirqd
|
||||
kstat
|
||||
@@ -2448,7 +2498,9 @@ mbox_request_channel
|
||||
mbox_send_message
|
||||
mdiobus_alloc_size
|
||||
mdiobus_free
|
||||
mdiobus_read
|
||||
mdiobus_unregister
|
||||
mdiobus_write
|
||||
media_device_cleanup
|
||||
media_device_init
|
||||
media_device_unregister
|
||||
@@ -2930,16 +2982,24 @@ perf_pmu_unregister
|
||||
perf_trace_buf_alloc
|
||||
perf_trace_run_bpf_submit
|
||||
pfn_valid
|
||||
phy_attached_info
|
||||
phy_calibrate
|
||||
phy_configure
|
||||
phy_connect
|
||||
phy_connect_direct
|
||||
phy_disconnect
|
||||
phy_do_ioctl_running
|
||||
phy_drivers_register
|
||||
phy_drivers_unregister
|
||||
phy_ethtool_get_link_ksettings
|
||||
phy_ethtool_nway_reset
|
||||
phy_ethtool_set_link_ksettings
|
||||
phy_exit
|
||||
phy_find_first
|
||||
phy_get_pause
|
||||
phy_init
|
||||
phy_init_hw
|
||||
phy_mii_ioctl
|
||||
phy_pm_runtime_get_sync
|
||||
phy_pm_runtime_put_sync
|
||||
phy_power_off
|
||||
@@ -3078,11 +3138,13 @@ ps2_sliced_command
|
||||
pskb_expand_head
|
||||
pstore_register
|
||||
pstore_unregister
|
||||
public_key_verify_signature
|
||||
put_device
|
||||
put_disk
|
||||
put_iova_domain
|
||||
put_pid
|
||||
put_sg_io_hdr
|
||||
put_tty_driver
|
||||
put_unused_fd
|
||||
put_vaddr_frames
|
||||
pwm_apply_state
|
||||
@@ -3539,6 +3601,7 @@ smp_call_function
|
||||
smp_call_function_any
|
||||
smp_call_function_many
|
||||
smp_call_function_single
|
||||
smp_call_function_single_async
|
||||
smp_call_on_cpu
|
||||
smpboot_register_percpu_thread
|
||||
smpboot_unregister_percpu_thread
|
||||
@@ -3755,6 +3818,7 @@ spmi_register_read
|
||||
spmi_register_write
|
||||
spmi_register_zero_write
|
||||
sprint_symbol
|
||||
sprint_symbol_no_offset
|
||||
sprintf
|
||||
srcu_barrier
|
||||
srcu_batches_completed
|
||||
@@ -3767,6 +3831,7 @@ srcutorture_get_gp_data
|
||||
sscanf
|
||||
stack_trace_print
|
||||
stack_trace_save
|
||||
stack_trace_save_regs
|
||||
stack_trace_save_tsk
|
||||
static_key_disable
|
||||
static_key_disable_cpuslocked
|
||||
@@ -3864,6 +3929,12 @@ tasklet_init
|
||||
tasklet_kill
|
||||
tasklet_setup
|
||||
tasklist_lock
|
||||
tcp_register_congestion_control
|
||||
tcp_reno_cong_avoid
|
||||
tcp_reno_ssthresh
|
||||
tcp_reno_undo_cwnd
|
||||
tcp_slow_start
|
||||
tcp_unregister_congestion_control
|
||||
tcpci_get_tcpm_port
|
||||
tcpci_irq
|
||||
tcpci_register_port
|
||||
@@ -3967,9 +4038,26 @@ ttm_unmap_and_unpopulate_pages
|
||||
tty_flip_buffer_push
|
||||
tty_insert_flip_string_fixed_flag
|
||||
tty_kref_put
|
||||
tty_ldisc_deref
|
||||
tty_ldisc_ref
|
||||
tty_port_close
|
||||
tty_port_destroy
|
||||
tty_port_hangup
|
||||
tty_port_init
|
||||
tty_port_open
|
||||
tty_port_register_device
|
||||
tty_port_tty_get
|
||||
tty_port_tty_wakeup
|
||||
tty_register_driver
|
||||
tty_set_operations
|
||||
tty_standard_install
|
||||
tty_std_termios
|
||||
tty_termios_baud_rate
|
||||
tty_termios_copy_hw
|
||||
tty_termios_encode_baud_rate
|
||||
tty_unregister_device
|
||||
tty_unregister_driver
|
||||
tty_vhangup
|
||||
typec_altmode_get_partner
|
||||
typec_altmode_update_active
|
||||
typec_get_drvdata
|
||||
@@ -4095,6 +4183,7 @@ usb_amd_quirk_pll_enable
|
||||
usb_asmedia_modifyflowcontrol
|
||||
usb_assign_descriptors
|
||||
usb_autopm_get_interface
|
||||
usb_autopm_get_interface_no_resume
|
||||
usb_autopm_put_interface
|
||||
usb_bulk_msg
|
||||
usb_calc_bus_time
|
||||
@@ -4107,6 +4196,7 @@ usb_debug_root
|
||||
usb_decode_ctrl
|
||||
usb_del_gadget_udc
|
||||
usb_deregister
|
||||
usb_deregister_dev
|
||||
usb_disable_xhci_ports
|
||||
usb_disabled
|
||||
usb_enable_autosuspend
|
||||
@@ -4124,6 +4214,7 @@ usb_ep_queue
|
||||
usb_ep_set_halt
|
||||
usb_ep_set_maxpacket_limit
|
||||
usb_find_common_endpoints
|
||||
usb_find_interface
|
||||
usb_free_all_descriptors
|
||||
usb_free_coherent
|
||||
usb_free_urb
|
||||
@@ -4140,8 +4231,10 @@ usb_gadget_vbus_connect
|
||||
usb_gadget_vbus_disconnect
|
||||
usb_gadget_vbus_draw
|
||||
usb_gadget_wakeup
|
||||
usb_get_dev
|
||||
usb_get_dr_mode
|
||||
usb_get_gadget_udc_name
|
||||
usb_get_intf
|
||||
usb_get_maximum_speed
|
||||
usb_get_urb
|
||||
usb_gstrings_attach
|
||||
@@ -4169,12 +4262,17 @@ usb_ifnum_to_if
|
||||
usb_initialize_gadget
|
||||
usb_interface_id
|
||||
usb_kill_urb
|
||||
usb_match_id
|
||||
usb_match_one_id
|
||||
usb_otg_state_string
|
||||
usb_phy_set_charger_current
|
||||
usb_poison_anchored_urbs
|
||||
usb_poison_urb
|
||||
usb_put_dev
|
||||
usb_put_function_instance
|
||||
usb_put_hcd
|
||||
usb_put_intf
|
||||
usb_register_dev
|
||||
usb_register_driver
|
||||
usb_register_notify
|
||||
usb_remove_hcd
|
||||
@@ -4188,12 +4286,17 @@ usb_role_switch_set_role
|
||||
usb_role_switch_unregister
|
||||
usb_root_hub_lost_power
|
||||
usb_set_device_state
|
||||
usb_set_interface
|
||||
usb_show_dynids
|
||||
usb_speed_string
|
||||
usb_store_new_id
|
||||
usb_string_id
|
||||
usb_submit_urb
|
||||
usb_unpoison_urb
|
||||
usb_unregister_notify
|
||||
usb_wakeup_notification
|
||||
usbnet_change_mtu
|
||||
usbnet_defer_kevent
|
||||
usbnet_disconnect
|
||||
usbnet_get_drvinfo
|
||||
usbnet_get_endpoints
|
||||
|
||||
@@ -398,6 +398,7 @@
|
||||
__devm_regmap_init_spi
|
||||
devm_regulator_bulk_get
|
||||
devm_regulator_get
|
||||
devm_regulator_get_exclusive
|
||||
devm_regulator_get_optional
|
||||
devm_regulator_put
|
||||
devm_regulator_register
|
||||
@@ -967,6 +968,7 @@
|
||||
__ioremap
|
||||
io_schedule_timeout
|
||||
iounmap
|
||||
iov_iter_bvec
|
||||
ip_send_check
|
||||
iput
|
||||
__irq_alloc_descs
|
||||
@@ -1052,6 +1054,7 @@
|
||||
kstrtouint
|
||||
kstrtouint_from_user
|
||||
kstrtoull
|
||||
kstrtoull_from_user
|
||||
kthread_bind
|
||||
kthread_bind_mask
|
||||
kthread_cancel_delayed_work_sync
|
||||
@@ -1246,6 +1249,7 @@
|
||||
of_get_regulator_init_data
|
||||
of_iomap
|
||||
of_irq_find_parent
|
||||
of_irq_get
|
||||
of_irq_get_byname
|
||||
of_irq_parse_one
|
||||
of_machine_is_compatible
|
||||
@@ -1280,6 +1284,7 @@
|
||||
of_root
|
||||
of_thermal_get_ntrips
|
||||
of_thermal_get_trip_points
|
||||
of_thermal_is_trip_valid
|
||||
of_translate_address
|
||||
of_usb_host_tpl_support
|
||||
page_endio
|
||||
@@ -1355,6 +1360,7 @@
|
||||
pinctrl_remove_gpio_range
|
||||
pinctrl_select_state
|
||||
pin_get_name
|
||||
pin_user_pages
|
||||
pin_user_pages_fast
|
||||
pin_user_pages_remote
|
||||
pktgen_xfrm_outer_mode_output
|
||||
@@ -1582,6 +1588,9 @@
|
||||
rtc_tm_to_time64
|
||||
rtc_update_irq
|
||||
rtc_valid_tm
|
||||
__rt_mutex_init
|
||||
rt_mutex_lock
|
||||
rt_mutex_unlock
|
||||
rtnl_is_locked
|
||||
rtnl_lock
|
||||
rtnl_unlock
|
||||
@@ -1923,6 +1932,7 @@
|
||||
__traceiter_android_rvh_typec_tcpci_chk_contaminant
|
||||
__traceiter_android_rvh_typec_tcpci_get_vbus
|
||||
__traceiter_android_rvh_uclamp_eff_get
|
||||
__traceiter_android_rvh_ufs_complete_init
|
||||
__traceiter_android_rvh_ufs_reprogram_all_keys
|
||||
__traceiter_android_rvh_util_est_update
|
||||
__traceiter_android_vh_arch_set_freq_scale
|
||||
@@ -1956,6 +1966,8 @@
|
||||
__traceiter_android_vh_ufs_send_tm_command
|
||||
__traceiter_android_vh_ufs_send_uic_command
|
||||
__traceiter_android_vh_ufs_update_sysfs
|
||||
__traceiter_android_vh_usb_dev_resume
|
||||
__traceiter_android_vh_usb_dev_suspend
|
||||
__traceiter_clock_set_rate
|
||||
__traceiter_cpu_frequency
|
||||
__traceiter_device_pm_callback_end
|
||||
@@ -1998,6 +2010,7 @@
|
||||
__tracepoint_android_rvh_typec_tcpci_chk_contaminant
|
||||
__tracepoint_android_rvh_typec_tcpci_get_vbus
|
||||
__tracepoint_android_rvh_uclamp_eff_get
|
||||
__tracepoint_android_rvh_ufs_complete_init
|
||||
__tracepoint_android_rvh_ufs_reprogram_all_keys
|
||||
__tracepoint_android_rvh_util_est_update
|
||||
__tracepoint_android_vh_arch_set_freq_scale
|
||||
@@ -2031,6 +2044,8 @@
|
||||
__tracepoint_android_vh_ufs_send_tm_command
|
||||
__tracepoint_android_vh_ufs_send_uic_command
|
||||
__tracepoint_android_vh_ufs_update_sysfs
|
||||
__tracepoint_android_vh_usb_dev_resume
|
||||
__tracepoint_android_vh_usb_dev_suspend
|
||||
__tracepoint_clock_set_rate
|
||||
__tracepoint_cpu_frequency
|
||||
__tracepoint_device_pm_callback_end
|
||||
|
||||
@@ -452,6 +452,7 @@
|
||||
devres_alloc_node
|
||||
devres_free
|
||||
devres_release
|
||||
dev_set_mac_address
|
||||
dev_set_name
|
||||
_dev_warn
|
||||
disable_irq
|
||||
@@ -2195,6 +2196,7 @@
|
||||
usbnet_write_cmd
|
||||
usbnet_write_cmd_async
|
||||
usbnet_write_cmd_nopm
|
||||
usb_os_desc_prepare_interf_dir
|
||||
usb_put_function
|
||||
usb_put_function_instance
|
||||
usb_put_hcd
|
||||
@@ -2235,6 +2237,7 @@
|
||||
v4l2_ctrl_request_complete
|
||||
v4l2_ctrl_request_setup
|
||||
__v4l2_ctrl_s_ctrl
|
||||
__v4l2_ctrl_s_ctrl_compound
|
||||
v4l2_ctrl_subdev_subscribe_event
|
||||
v4l2_ctrl_subscribe_event
|
||||
v4l2_device_register
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1784,6 +1784,8 @@
|
||||
platform_get_resource
|
||||
platform_get_resource_byname
|
||||
platform_irq_count
|
||||
platform_msi_domain_alloc_irqs
|
||||
platform_msi_domain_free_irqs
|
||||
pm_clk_add
|
||||
pm_clk_create
|
||||
pm_clk_destroy
|
||||
@@ -1958,6 +1960,7 @@
|
||||
register_kretprobe
|
||||
register_memory_notifier
|
||||
register_module_notifier
|
||||
register_qdisc
|
||||
register_netdev
|
||||
register_netdevice
|
||||
register_netdevice_notifier
|
||||
@@ -2086,8 +2089,10 @@
|
||||
rproc_remove_subdev
|
||||
rproc_report_crash
|
||||
rproc_shutdown
|
||||
rtc_ktime_to_tm
|
||||
__rtc_register_device
|
||||
rtc_time64_to_tm
|
||||
rtc_tm_to_ktime
|
||||
rtc_tm_to_time64
|
||||
rtc_update_irq
|
||||
rt_mutex_lock
|
||||
@@ -2810,6 +2815,7 @@
|
||||
unregister_oom_notifier
|
||||
unregister_pernet_device
|
||||
unregister_pm_notifier
|
||||
unregister_qdisc
|
||||
unregister_reboot_notifier
|
||||
unregister_restart_handler
|
||||
unregister_rpmsg_driver
|
||||
@@ -2983,6 +2989,8 @@
|
||||
vprintk
|
||||
vscnprintf
|
||||
vsnprintf
|
||||
vsock_addr_init
|
||||
vsock_remove_sock
|
||||
vunmap
|
||||
vzalloc
|
||||
wait_for_completion
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -869,6 +869,7 @@
|
||||
kstrtou8_from_user
|
||||
kstrtouint
|
||||
kstrtouint_from_user
|
||||
_kstrtoul
|
||||
kstrtoul_from_user
|
||||
kstrtoull
|
||||
kstrtoull_from_user
|
||||
@@ -1226,6 +1227,8 @@
|
||||
proc_dointvec_minmax
|
||||
proc_dostring
|
||||
proc_douintvec_minmax
|
||||
profile_event_register
|
||||
profile_event_unregister
|
||||
proto_register
|
||||
proto_unregister
|
||||
__pskb_pull_tail
|
||||
@@ -1761,6 +1764,7 @@
|
||||
__tracepoint_android_rvh_flush_task
|
||||
__tracepoint_android_rvh_migrate_queued_task
|
||||
__tracepoint_android_rvh_new_task_stats
|
||||
__tracepoint_android_rvh_refrigerator
|
||||
__tracepoint_android_rvh_replace_next_task_fair
|
||||
__tracepoint_android_rvh_resume_cpus
|
||||
__tracepoint_android_rvh_sched_cpu_dying
|
||||
@@ -1786,12 +1790,15 @@
|
||||
__tracepoint_android_rvh_update_cpus_allowed
|
||||
__tracepoint_android_rvh_update_misfit_status
|
||||
__tracepoint_android_rvh_wake_up_new_task
|
||||
__tracepoint_android_vh_account_task_time
|
||||
__tracepoint_android_vh_allow_domain_state
|
||||
__tracepoint_android_vh_binder_restore_priority
|
||||
__tracepoint_android_vh_binder_set_priority
|
||||
__tracepoint_android_vh_binder_trans
|
||||
__tracepoint_android_vh_binder_wakeup_ilocked
|
||||
__tracepoint_android_vh_cpu_idle_enter
|
||||
__tracepoint_android_vh_cpu_idle_exit
|
||||
__tracepoint_android_vh_dup_task_struct
|
||||
__tracepoint_android_vh_ftrace_dump_buffer
|
||||
__tracepoint_android_vh_ftrace_format_check
|
||||
__tracepoint_android_vh_ftrace_oops_enter
|
||||
@@ -1799,6 +1806,7 @@
|
||||
__tracepoint_android_vh_ftrace_size_check
|
||||
__tracepoint_android_vh_iommu_setup_dma_ops
|
||||
__tracepoint_android_vh_ipi_stop
|
||||
__tracepoint_android_vh_irqtime_account_process_tick
|
||||
__tracepoint_android_vh_jiffies_update
|
||||
__tracepoint_android_vh_mmc_attach_sd
|
||||
__tracepoint_android_vh_mmc_blk_mq_rw_recovery
|
||||
@@ -1812,10 +1820,13 @@
|
||||
__tracepoint_android_vh_show_resume_epoch_val
|
||||
__tracepoint_android_vh_show_suspend_epoch_val
|
||||
__tracepoint_android_vh_timer_calc_index
|
||||
__tracepoint_android_vh_tune_scan_type
|
||||
__tracepoint_android_vh_tune_swappiness
|
||||
__tracepoint_android_vh_ufs_check_int_errors
|
||||
__tracepoint_android_vh_ufs_compl_command
|
||||
__tracepoint_android_vh_ufs_send_command
|
||||
__tracepoint_android_vh_ufs_update_sdev
|
||||
__tracepoint_android_vh_vmpressure
|
||||
__tracepoint_binder_transaction_received
|
||||
__tracepoint_cpu_frequency_limits
|
||||
__tracepoint_cpu_idle
|
||||
@@ -1865,6 +1876,7 @@
|
||||
ucsi_destroy
|
||||
ucsi_get_drvdata
|
||||
ucsi_register
|
||||
ucsi_send_command
|
||||
ucsi_set_drvdata
|
||||
ucsi_unregister
|
||||
__udelay
|
||||
|
||||
@@ -139,6 +139,7 @@ config ARM64
|
||||
select HAVE_ARCH_JUMP_LABEL
|
||||
select HAVE_ARCH_JUMP_LABEL_RELATIVE
|
||||
select HAVE_ARCH_KASAN if !(ARM64_16K_PAGES && ARM64_VA_BITS_48)
|
||||
select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
|
||||
select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
|
||||
select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
|
||||
select HAVE_ARCH_KFENCE
|
||||
@@ -194,6 +195,7 @@ config ARM64
|
||||
select IOMMU_DMA if IOMMU_SUPPORT
|
||||
select IRQ_DOMAIN
|
||||
select IRQ_FORCED_THREADING
|
||||
select KASAN_VMALLOC if KASAN_GENERIC
|
||||
select MODULES_USE_ELF_RELA
|
||||
select NEED_DMA_MAP_STATE
|
||||
select NEED_SG_DMA_LENGTH
|
||||
|
||||
@@ -236,7 +236,6 @@ static inline const void *__tag_set(const void *addr, u8 tag)
|
||||
#define arch_enable_tagging_async() mte_enable_kernel_async()
|
||||
#define arch_set_tagging_report_once(state) mte_set_report_once(state)
|
||||
#define arch_force_async_tag_fault() mte_check_tfsr_exit()
|
||||
#define arch_init_tags(max_tag) mte_init_tags(max_tag)
|
||||
#define arch_get_random_tag() mte_get_random_tag()
|
||||
#define arch_get_mem_tag(addr) mte_get_mem_tag(addr)
|
||||
#define arch_set_mem_tag_range(addr, size, tag, init) \
|
||||
|
||||
@@ -130,7 +130,6 @@ static inline void mte_set_mem_tag_range(void *addr, size_t size, u8 tag,
|
||||
|
||||
void mte_enable_kernel_sync(void);
|
||||
void mte_enable_kernel_async(void);
|
||||
void mte_init_tags(u64 max_tag);
|
||||
|
||||
void mte_set_report_once(bool state);
|
||||
bool mte_report_once(void);
|
||||
@@ -165,10 +164,6 @@ static inline void mte_enable_kernel_async(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void mte_init_tags(u64 max_tag)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void mte_set_report_once(bool state)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
|
||||
#include <asm/pgtable-types.h>
|
||||
|
||||
extern u64 gcr_kernel_excl;
|
||||
|
||||
void mte_clear_page_tags(void *addr);
|
||||
unsigned long mte_copy_tags_from_user(void *to, const void __user *from,
|
||||
unsigned long n);
|
||||
@@ -43,7 +41,6 @@ void mte_copy_page_tags(void *kto, const void *kfrom);
|
||||
void mte_thread_init_user(void);
|
||||
void mte_thread_switch(struct task_struct *next);
|
||||
void mte_suspend_enter(void);
|
||||
void mte_suspend_exit(void);
|
||||
long set_mte_ctrl(struct task_struct *task, unsigned long arg);
|
||||
long get_mte_ctrl(struct task_struct *task);
|
||||
int mte_ptrace_copy_tags(struct task_struct *child, long request,
|
||||
@@ -72,9 +69,6 @@ static inline void mte_thread_switch(struct task_struct *next)
|
||||
static inline void mte_suspend_enter(void)
|
||||
{
|
||||
}
|
||||
static inline void mte_suspend_exit(void)
|
||||
{
|
||||
}
|
||||
static inline long set_mte_ctrl(struct task_struct *task, unsigned long arg)
|
||||
{
|
||||
return 0;
|
||||
@@ -105,11 +99,17 @@ void mte_check_tfsr_el1(void);
|
||||
|
||||
static inline void mte_check_tfsr_entry(void)
|
||||
{
|
||||
if (!system_supports_mte())
|
||||
return;
|
||||
|
||||
mte_check_tfsr_el1();
|
||||
}
|
||||
|
||||
static inline void mte_check_tfsr_exit(void)
|
||||
{
|
||||
if (!system_supports_mte())
|
||||
return;
|
||||
|
||||
/*
|
||||
* The asynchronous faults are sync'ed automatically with
|
||||
* TFSR_EL1 on kernel entry but for exit an explicit dsb()
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
#include <linux/bits.h>
|
||||
#include <linux/stringify.h>
|
||||
#include <linux/kasan-tags.h>
|
||||
|
||||
/*
|
||||
* ARMv8 ARM reserves the following encoding for system registers:
|
||||
@@ -1044,6 +1045,21 @@
|
||||
#define SYS_GCR_EL1_RRND (BIT(16))
|
||||
#define SYS_GCR_EL1_EXCL_MASK 0xffffUL
|
||||
|
||||
#ifdef CONFIG_KASAN_HW_TAGS
|
||||
/*
|
||||
* KASAN always uses a whole byte for its tags. With CONFIG_KASAN_HW_TAGS it
|
||||
* only uses tags in the range 0xF0-0xFF, which we map to MTE tags 0x0-0xF.
|
||||
*/
|
||||
#define __MTE_TAG_MIN (KASAN_TAG_MIN & 0xf)
|
||||
#define __MTE_TAG_MAX (KASAN_TAG_MAX & 0xf)
|
||||
#define __MTE_TAG_INCL GENMASK(__MTE_TAG_MAX, __MTE_TAG_MIN)
|
||||
#define KERNEL_GCR_EL1_EXCL (SYS_GCR_EL1_EXCL_MASK & ~__MTE_TAG_INCL)
|
||||
#else
|
||||
#define KERNEL_GCR_EL1_EXCL SYS_GCR_EL1_EXCL_MASK
|
||||
#endif
|
||||
|
||||
#define KERNEL_GCR_EL1 (SYS_GCR_EL1_RRND | KERNEL_GCR_EL1_EXCL)
|
||||
|
||||
/* RGSR_EL1 Definitions */
|
||||
#define SYS_RGSR_EL1_TAG_MASK 0xfUL
|
||||
#define SYS_RGSR_EL1_SEED_SHIFT 8
|
||||
|
||||
@@ -193,21 +193,20 @@ alternative_else_nop_endif
|
||||
|
||||
.macro mte_set_kernel_gcr, tmp, tmp2
|
||||
#ifdef CONFIG_KASAN_HW_TAGS
|
||||
alternative_if_not ARM64_MTE
|
||||
alternative_cb kasan_hw_tags_enable
|
||||
b 1f
|
||||
alternative_else_nop_endif
|
||||
ldr_l \tmp, gcr_kernel_excl
|
||||
|
||||
mte_set_gcr \tmp, \tmp2
|
||||
alternative_cb_end
|
||||
mov \tmp, KERNEL_GCR_EL1
|
||||
msr_s SYS_GCR_EL1, \tmp
|
||||
1:
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.macro mte_set_user_gcr, tsk, tmp, tmp2
|
||||
#ifdef CONFIG_ARM64_MTE
|
||||
alternative_if_not ARM64_MTE
|
||||
#ifdef CONFIG_KASAN_HW_TAGS
|
||||
alternative_cb kasan_hw_tags_enable
|
||||
b 1f
|
||||
alternative_else_nop_endif
|
||||
alternative_cb_end
|
||||
ldr \tmp, [\tsk, #THREAD_MTE_CTRL]
|
||||
|
||||
mte_set_gcr \tmp, \tmp2
|
||||
|
||||
@@ -128,15 +128,17 @@ u64 __init kaslr_early_init(void)
|
||||
/* use the top 16 bits to randomize the linear region */
|
||||
memstart_offset_seed = seed >> 48;
|
||||
|
||||
if (IS_ENABLED(CONFIG_KASAN_GENERIC) ||
|
||||
IS_ENABLED(CONFIG_KASAN_SW_TAGS))
|
||||
if (!IS_ENABLED(CONFIG_KASAN_VMALLOC) &&
|
||||
(IS_ENABLED(CONFIG_KASAN_GENERIC) ||
|
||||
IS_ENABLED(CONFIG_KASAN_SW_TAGS)))
|
||||
/*
|
||||
* KASAN does not expect the module region to intersect the
|
||||
* vmalloc region, since shadow memory is allocated for each
|
||||
* module at load time, whereas the vmalloc region is shadowed
|
||||
* by KASAN zero pages. So keep modules out of the vmalloc
|
||||
* region if KASAN is enabled, and put the kernel well within
|
||||
* 4 GB of the module region.
|
||||
* KASAN without KASAN_VMALLOC does not expect the module region
|
||||
* to intersect the vmalloc region, since shadow memory is
|
||||
* allocated for each module at load time, whereas the vmalloc
|
||||
* region is shadowed by KASAN zero pages. So keep modules
|
||||
* out of the vmalloc region if KASAN is enabled without
|
||||
* KASAN_VMALLOC, and put the kernel well within 4 GB of the
|
||||
* module region.
|
||||
*/
|
||||
return offset % SZ_2G;
|
||||
|
||||
|
||||
@@ -40,14 +40,16 @@ void *module_alloc(unsigned long size)
|
||||
NUMA_NO_NODE, __builtin_return_address(0));
|
||||
|
||||
if (!p && IS_ENABLED(CONFIG_ARM64_MODULE_PLTS) &&
|
||||
!IS_ENABLED(CONFIG_KASAN_GENERIC) &&
|
||||
!IS_ENABLED(CONFIG_KASAN_SW_TAGS))
|
||||
(IS_ENABLED(CONFIG_KASAN_VMALLOC) ||
|
||||
(!IS_ENABLED(CONFIG_KASAN_GENERIC) &&
|
||||
!IS_ENABLED(CONFIG_KASAN_SW_TAGS))))
|
||||
/*
|
||||
* KASAN can only deal with module allocations being served
|
||||
* from the reserved module region, since the remainder of
|
||||
* the vmalloc region is already backed by zero shadow pages,
|
||||
* and punching holes into it is non-trivial. Since the module
|
||||
* region is not randomized when KASAN is enabled, it is even
|
||||
* KASAN without KASAN_VMALLOC can only deal with module
|
||||
* allocations being served from the reserved module region,
|
||||
* since the remainder of the vmalloc region is already
|
||||
* backed by zero shadow pages, and punching holes into it
|
||||
* is non-trivial. Since the module region is not randomized
|
||||
* when KASAN is enabled without KASAN_VMALLOC, it is even
|
||||
* less likely that the module region gets exhausted, so we
|
||||
* can simply omit this fallback in that case.
|
||||
*/
|
||||
|
||||
@@ -23,8 +23,6 @@
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/sysreg.h>
|
||||
|
||||
u64 gcr_kernel_excl __ro_after_init;
|
||||
|
||||
static bool report_fault_once = true;
|
||||
|
||||
static DEFINE_PER_CPU_READ_MOSTLY(u64, mte_tcf_preferred);
|
||||
@@ -96,26 +94,6 @@ int memcmp_pages(struct page *page1, struct page *page2)
|
||||
return ret;
|
||||
}
|
||||
|
||||
void mte_init_tags(u64 max_tag)
|
||||
{
|
||||
static bool gcr_kernel_excl_initialized;
|
||||
|
||||
if (!gcr_kernel_excl_initialized) {
|
||||
/*
|
||||
* The format of the tags in KASAN is 0xFF and in MTE is 0xF.
|
||||
* This conversion extracts an MTE tag from a KASAN tag.
|
||||
*/
|
||||
u64 incl = GENMASK(FIELD_GET(MTE_TAG_MASK >> MTE_TAG_SHIFT,
|
||||
max_tag), 0);
|
||||
|
||||
gcr_kernel_excl = ~incl & SYS_GCR_EL1_EXCL_MASK;
|
||||
gcr_kernel_excl_initialized = true;
|
||||
}
|
||||
|
||||
/* Enable the kernel exclude mask for random tags generation. */
|
||||
write_sysreg_s(SYS_GCR_EL1_RRND | gcr_kernel_excl, SYS_GCR_EL1);
|
||||
}
|
||||
|
||||
static inline void __mte_enable_kernel(const char *mode, unsigned long tcf)
|
||||
{
|
||||
/* Enable MTE Sync Mode for EL1. */
|
||||
@@ -168,12 +146,7 @@ bool mte_report_once(void)
|
||||
#ifdef CONFIG_KASAN_HW_TAGS
|
||||
void mte_check_tfsr_el1(void)
|
||||
{
|
||||
u64 tfsr_el1;
|
||||
|
||||
if (!system_supports_mte())
|
||||
return;
|
||||
|
||||
tfsr_el1 = read_sysreg_s(SYS_TFSR_EL1);
|
||||
u64 tfsr_el1 = read_sysreg_s(SYS_TFSR_EL1);
|
||||
|
||||
if (unlikely(tfsr_el1 & SYS_TFSR_EL1_TF1)) {
|
||||
/*
|
||||
@@ -210,6 +183,30 @@ static void mte_update_sctlr_user(struct task_struct *task)
|
||||
task->thread.sctlr_user = sctlr;
|
||||
}
|
||||
|
||||
static void mte_update_gcr_excl(struct task_struct *task)
|
||||
{
|
||||
/*
|
||||
* SYS_GCR_EL1 will be set to current->thread.mte_ctrl value by
|
||||
* mte_set_user_gcr() in kernel_exit, but only if KASAN is enabled.
|
||||
*/
|
||||
if (kasan_hw_tags_enabled())
|
||||
return;
|
||||
|
||||
write_sysreg_s(
|
||||
((task->thread.mte_ctrl >> MTE_CTRL_GCR_USER_EXCL_SHIFT) &
|
||||
SYS_GCR_EL1_EXCL_MASK) | SYS_GCR_EL1_RRND,
|
||||
SYS_GCR_EL1);
|
||||
}
|
||||
|
||||
void __init kasan_hw_tags_enable(struct alt_instr *alt, __le32 *origptr,
|
||||
__le32 *updptr, int nr_inst)
|
||||
{
|
||||
BUG_ON(nr_inst != 1); /* Branch -> NOP */
|
||||
|
||||
if (kasan_hw_tags_enabled())
|
||||
*updptr = cpu_to_le32(aarch64_insn_gen_nop());
|
||||
}
|
||||
|
||||
void mte_thread_init_user(void)
|
||||
{
|
||||
if (!system_supports_mte())
|
||||
@@ -225,7 +222,11 @@ void mte_thread_init_user(void)
|
||||
|
||||
void mte_thread_switch(struct task_struct *next)
|
||||
{
|
||||
if (!system_supports_mte())
|
||||
return;
|
||||
|
||||
mte_update_sctlr_user(next);
|
||||
mte_update_gcr_excl(next);
|
||||
|
||||
/*
|
||||
* Check if an async tag exception occurred at EL1.
|
||||
@@ -254,15 +255,6 @@ void mte_suspend_enter(void)
|
||||
mte_check_tfsr_el1();
|
||||
}
|
||||
|
||||
void mte_suspend_exit(void)
|
||||
{
|
||||
if (!system_supports_mte())
|
||||
return;
|
||||
|
||||
sysreg_clear_set_s(SYS_GCR_EL1, SYS_GCR_EL1_EXCL_MASK, gcr_kernel_excl);
|
||||
isb();
|
||||
}
|
||||
|
||||
long set_mte_ctrl(struct task_struct *task, unsigned long arg)
|
||||
{
|
||||
u64 mte_ctrl = (~((arg & PR_MTE_TAG_MASK) >> PR_MTE_TAG_SHIFT) &
|
||||
@@ -280,6 +272,7 @@ long set_mte_ctrl(struct task_struct *task, unsigned long arg)
|
||||
if (task == current) {
|
||||
preempt_disable();
|
||||
mte_update_sctlr_user(task);
|
||||
mte_update_gcr_excl(task);
|
||||
update_sctlr_el1(task->thread.sctlr_user);
|
||||
preempt_enable();
|
||||
}
|
||||
|
||||
@@ -76,7 +76,6 @@ void notrace __cpu_suspend_exit(void)
|
||||
spectre_v4_enable_mitigation(NULL);
|
||||
|
||||
/* Restore additional feature-specific configuration */
|
||||
mte_suspend_exit();
|
||||
ptrauth_suspend_exit();
|
||||
}
|
||||
|
||||
|
||||
@@ -214,15 +214,18 @@ static void __init kasan_init_shadow(void)
|
||||
{
|
||||
u64 kimg_shadow_start, kimg_shadow_end;
|
||||
u64 mod_shadow_start, mod_shadow_end;
|
||||
u64 vmalloc_shadow_end;
|
||||
phys_addr_t pa_start, pa_end;
|
||||
u64 i;
|
||||
|
||||
kimg_shadow_start = (u64)kasan_mem_to_shadow(_text) & PAGE_MASK;
|
||||
kimg_shadow_end = PAGE_ALIGN((u64)kasan_mem_to_shadow(_end));
|
||||
kimg_shadow_start = (u64)kasan_mem_to_shadow(KERNEL_START) & PAGE_MASK;
|
||||
kimg_shadow_end = PAGE_ALIGN((u64)kasan_mem_to_shadow(KERNEL_END));
|
||||
|
||||
mod_shadow_start = (u64)kasan_mem_to_shadow((void *)MODULES_VADDR);
|
||||
mod_shadow_end = (u64)kasan_mem_to_shadow((void *)MODULES_END);
|
||||
|
||||
vmalloc_shadow_end = (u64)kasan_mem_to_shadow((void *)VMALLOC_END);
|
||||
|
||||
/*
|
||||
* We are going to perform proper setup of shadow memory.
|
||||
* At first we should unmap early shadow (clear_pgds() call below).
|
||||
@@ -237,16 +240,22 @@ static void __init kasan_init_shadow(void)
|
||||
clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);
|
||||
|
||||
kasan_map_populate(kimg_shadow_start, kimg_shadow_end,
|
||||
early_pfn_to_nid(virt_to_pfn(lm_alias(_text))));
|
||||
early_pfn_to_nid(virt_to_pfn(lm_alias(KERNEL_START))));
|
||||
|
||||
kasan_populate_early_shadow(kasan_mem_to_shadow((void *)PAGE_END),
|
||||
(void *)mod_shadow_start);
|
||||
kasan_populate_early_shadow((void *)kimg_shadow_end,
|
||||
(void *)KASAN_SHADOW_END);
|
||||
|
||||
if (kimg_shadow_start > mod_shadow_end)
|
||||
kasan_populate_early_shadow((void *)mod_shadow_end,
|
||||
(void *)kimg_shadow_start);
|
||||
if (IS_ENABLED(CONFIG_KASAN_VMALLOC)) {
|
||||
BUILD_BUG_ON(VMALLOC_START != MODULES_END);
|
||||
kasan_populate_early_shadow((void *)vmalloc_shadow_end,
|
||||
(void *)KASAN_SHADOW_END);
|
||||
} else {
|
||||
kasan_populate_early_shadow((void *)kimg_shadow_end,
|
||||
(void *)KASAN_SHADOW_END);
|
||||
if (kimg_shadow_start > mod_shadow_end)
|
||||
kasan_populate_early_shadow((void *)mod_shadow_end,
|
||||
(void *)kimg_shadow_start);
|
||||
}
|
||||
|
||||
for_each_mem_range(i, &pa_start, &pa_end) {
|
||||
void *start = (void *)__phys_to_virt(pa_start);
|
||||
|
||||
@@ -1501,6 +1501,11 @@ int arch_add_memory(int nid, u64 start, u64 size,
|
||||
if (ret)
|
||||
__remove_pgd_mapping(swapper_pg_dir,
|
||||
__phys_to_virt(start), size);
|
||||
else {
|
||||
max_pfn = PFN_UP(start + size);
|
||||
max_low_pfn = max_pfn;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -445,8 +445,7 @@ SYM_FUNC_START(__cpu_setup)
|
||||
mov x10, #MAIR_ATTR_NORMAL_TAGGED
|
||||
bfi x5, x10, #(8 * MT_NORMAL_TAGGED), #8
|
||||
|
||||
/* initialize GCR_EL1: all non-zero tags excluded by default */
|
||||
mov x10, #(SYS_GCR_EL1_RRND | SYS_GCR_EL1_EXCL_MASK)
|
||||
mov x10, #KERNEL_GCR_EL1
|
||||
msr_s SYS_GCR_EL1, x10
|
||||
|
||||
/*
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user