mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
de68c74304feffc5db1f28e5e269be1ca4f2fa51
1068086 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
de68c74304 |
ANDROID: KVM: arm64: Always unmap protected regions from the host
As part of the host deprivilege process, memory regions advertised in
the "pkvm,protected-region" devicetree nodes are unmapped from the
host stage-2 page-table and annotated specially so that the memory can
be used exclusively by hypervisor modules.
Since the state of this memory in the host stage-2 may not be in the
"owned" state (for example, if it corresponds to a "no-map" region),
remove the initial check of the page state and allow unmapping of any
pages from the trusted host.
Bug: 280380533
Cc: Quentin Perret <qperret@google.com>
Fixes:
|
||
|
|
a349adda90 |
ANDROID: block: Improve shared tag set performance
Remove the code for fair tag sharing because it significantly hurts performance for UFS devices. Removing this code is safe because the legacy block layer worked fine without any equivalent fairness algorithm. This algorithm hurts performance for UFS devices because UFS devices have multiple logical units. One of these logical units (WLUN) is used to submit control commands, e.g. START STOP UNIT. If any request is submitted to the WLUN, the queue depth is reduced from 31 to 15 or lower for data LUNs. See also https://lore.kernel.org/linux-scsi/20221229030645.11558-1-ed.tsai@mediatek.com/ Cc: Christoph Hellwig <hch@lst.de> Cc: Martin K. Petersen <martin.petersen@oracle.com> Cc: Ming Lei <ming.lei@redhat.com> Cc: Keith Busch <kbusch@kernel.org> Cc: Damien Le Moal <damien.lemoal@opensource.wdc.com> Cc: Ed Tsai <ed.tsai@mediatek.com> Change-Id: Ia6d75917d533f32fffc68348b52fd3d972c9074c Signed-off-by: Bart Van Assche <bvanassche@acm.org> Bug: 281845090 Link: https://lore.kernel.org/linux-block/20230103195337.158625-1-bvanassche@acm.org/ Signed-off-by: Bart Van Assche <bvanassche@google.com> |
||
|
|
0b5545b549 |
ANDROID: GKI: Update owners for GKI modules lists
Add ramjiyani@ as per-file owner for list of protected modules for all current & future architectures. android/gki_*_protected_modules Bug: 151893768 Test: TH Change-Id: I0048c99a28cfe24e1ba7c7d6189fd8c7dfdf6f0d Signed-off-by: Ramji Jiyani <ramjiyani@google.com> |
||
|
|
9919aa7367 |
FROMLIST: usb: typec: altmodes/displayport: fix pin_assignment_show
This patch fixes negative indexing of buf array in pin_assignment_show when get_current_pin_assignments returns 0 i.e. no compatible pin assignments. BUG: KASAN: use-after-free in pin_assignment_show+0x26c/0x33c ... Call trace: dump_backtrace+0x110/0x204 dump_stack_lvl+0x84/0xbc print_report+0x358/0x974 kasan_report+0x9c/0xfc __do_kernel_fault+0xd4/0x2d4 do_bad_area+0x48/0x168 do_tag_check_fault+0x24/0x38 do_mem_abort+0x6c/0x14c el1_abort+0x44/0x68 el1h_64_sync_handler+0x64/0xa4 el1h_64_sync+0x78/0x7c pin_assignment_show+0x26c/0x33c dev_attr_show+0x50/0xc0 Bug: 281126270 Change-Id: I117ec48a09df969029dc1b2f6cb0baea13200ff0 Link: https://lore.kernel.org/lkml/20230508214443.893436-1-badhri@google.com/T/ Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> |
||
|
|
0b015de44e |
ANDROID: Update the ABI symbol list
Adding the following symbols: - __traceiter_android_rvh_audio_usb_offload_disconnect - __traceiter_android_vh_audio_usb_offload_connect - __tracepoint_android_rvh_audio_usb_offload_disconnect - __tracepoint_android_vh_audio_usb_offload_connect Bug: 279824172 Change-Id: I65d8fbff12a6cc97fcf3c784f138779210b1b2b3 Signed-off-by: vincenttew <vincenttew@google.com> |
||
|
|
22ec5ade86 |
ANDROID: 5/10/2023 KMI update
Set KMI_GENERATION=6 for 5/10 KMI update
122 function symbol(s) removed
'struct sk_buff* __cfg80211_alloc_event_skb(struct wiphy*, struct wireless_dev*, enum nl80211_commands, enum nl80211_attrs, unsigned int, int, int, gfp_t)'
'struct sk_buff* __cfg80211_alloc_reply_skb(struct wiphy*, enum nl80211_commands, enum nl80211_attrs, int)'
'void __cfg80211_send_event_skb(struct sk_buff*, gfp_t)'
'void cfg80211_assoc_failure(struct net_device*, struct cfg80211_assoc_failure*)'
'u32 cfg80211_calculate_bitrate(struct rate_info*)'
'void cfg80211_ch_switch_notify(struct net_device*, struct cfg80211_chan_def*, unsigned int)'
'void cfg80211_ch_switch_started_notify(struct net_device*, struct cfg80211_chan_def*, unsigned int, u8, bool)'
'void cfg80211_chandef_create(struct cfg80211_chan_def*, struct ieee80211_channel*, enum nl80211_channel_type)'
'void cfg80211_connect_done(struct net_device*, struct cfg80211_connect_resp_params*, gfp_t)'
'void cfg80211_del_sta_sinfo(struct net_device*, const u8*, struct station_info*, gfp_t)'
'void cfg80211_disconnected(struct net_device*, u16, const u8*, size_t, bool, gfp_t)'
'int cfg80211_external_auth_request(struct net_device*, struct cfg80211_external_auth_params*, gfp_t)'
'const struct element* cfg80211_find_elem_match(u8, const u8*, unsigned int, const u8*, unsigned int, unsigned int)'
'const struct element* cfg80211_find_vendor_elem(unsigned int, int, const u8*, unsigned int)'
'void cfg80211_ft_event(struct net_device*, struct cfg80211_ft_event_params*)'
'struct cfg80211_bss* cfg80211_get_bss(struct wiphy*, struct ieee80211_channel*, const u8*, const u8*, size_t, enum ieee80211_bss_type, enum ieee80211_privacy)'
'void cfg80211_gtk_rekey_notify(struct net_device*, const u8*, const u8*, gfp_t)'
'void cfg80211_ibss_joined(struct net_device*, const u8*, struct ieee80211_channel*, gfp_t)'
'struct cfg80211_bss* cfg80211_inform_bss_data(struct wiphy*, struct cfg80211_inform_bss*, enum cfg80211_bss_frame_type, const u8*, u64, u16, u16, const u8*, size_t, gfp_t)'
'struct cfg80211_bss* cfg80211_inform_bss_frame_data(struct wiphy*, struct cfg80211_inform_bss*, struct ieee80211_mgmt*, size_t, gfp_t)'
'void cfg80211_mgmt_tx_status_ext(struct wireless_dev*, struct cfg80211_tx_status*, gfp_t)'
'void cfg80211_michael_mic_failure(struct net_device*, const u8*, enum nl80211_key_type, int, const u8*, gfp_t)'
'void cfg80211_new_sta(struct net_device*, const u8*, struct station_info*, gfp_t)'
'void cfg80211_pmksa_candidate_notify(struct net_device*, int, const u8*, bool, gfp_t)'
'void cfg80211_port_authorized(struct net_device*, const u8*, const u8*, u8, gfp_t)'
'void cfg80211_put_bss(struct wiphy*, struct cfg80211_bss*)'
'void cfg80211_ready_on_channel(struct wireless_dev*, u64, struct ieee80211_channel*, unsigned int, gfp_t)'
'int cfg80211_register_netdevice(struct net_device*)'
'void cfg80211_remain_on_channel_expired(struct wireless_dev*, u64, struct ieee80211_channel*, gfp_t)'
'void cfg80211_roamed(struct net_device*, struct cfg80211_roam_info*, gfp_t)'
'bool cfg80211_rx_mgmt_ext(struct wireless_dev*, struct cfg80211_rx_info*)'
'void cfg80211_rx_unprot_mlme_mgmt(struct net_device*, const u8*, size_t)'
'void cfg80211_scan_done(struct cfg80211_scan_request*, struct cfg80211_scan_info*)'
'void cfg80211_sched_scan_results(struct wiphy*, u64)'
'void cfg80211_sched_scan_stopped_locked(struct wiphy*, u64)'
'void cfg80211_tdls_oper_request(struct net_device*, const u8*, enum nl80211_tdls_operation, u16, gfp_t)'
'void cfg80211_unlink_bss(struct wiphy*, struct cfg80211_bss*)'
'void cfg80211_unregister_wdev(struct wireless_dev*)'
'void cfg80211_update_owe_info_event(struct net_device*, struct cfg80211_update_owe_info*, gfp_t)'
'int cfg80211_vendor_cmd_reply(struct sk_buff*)'
'const struct ieee80211_reg_rule* freq_reg_info(struct wiphy*, u32)'
'struct ieee80211_hw* ieee80211_alloc_hw_nm(size_t, const struct ieee80211_ops*, const char*)'
'bool ieee80211_beacon_cntdwn_is_complete(struct ieee80211_vif*)'
'struct sk_buff* ieee80211_beacon_get_template(struct ieee80211_hw*, struct ieee80211_vif*, struct ieee80211_mutable_offsets*)'
'struct sk_buff* ieee80211_beacon_get_tim(struct ieee80211_hw*, struct ieee80211_vif*, u16*, u16*)'
'void ieee80211_beacon_loss(struct ieee80211_vif*)'
'u8 ieee80211_beacon_update_cntdwn(struct ieee80211_vif*)'
'const struct element* ieee80211_bss_get_elem(struct cfg80211_bss*, u8)'
'u32 ieee80211_calc_rx_airtime(struct ieee80211_hw*, struct ieee80211_rx_status*, int)'
'u32 ieee80211_calc_tx_airtime(struct ieee80211_hw*, struct ieee80211_tx_info*, int)'
'u32 ieee80211_channel_to_freq_khz(int, enum nl80211_band)'
'void ieee80211_connection_loss(struct ieee80211_vif*)'
'void ieee80211_csa_finish(struct ieee80211_vif*)'
'struct ieee80211_sta* ieee80211_find_sta(struct ieee80211_vif*, const u8*)'
'struct ieee80211_sta* ieee80211_find_sta_by_ifaddr(struct ieee80211_hw*, const u8*, const u8*)'
'void ieee80211_free_hw(struct ieee80211_hw*)'
'void ieee80211_free_txskb(struct ieee80211_hw*, struct sk_buff*)'
'int ieee80211_freq_khz_to_channel(u32)'
'struct sk_buff* ieee80211_get_buffered_bc(struct ieee80211_hw*, struct ieee80211_vif*)'
'struct ieee80211_channel* ieee80211_get_channel_khz(struct wiphy*, u32)'
'struct sk_buff* ieee80211_get_fils_discovery_tmpl(struct ieee80211_hw*, struct ieee80211_vif*)'
'unsigned int ieee80211_get_hdrlen_from_skb(const struct sk_buff*)'
'void ieee80211_get_key_rx_seq(struct ieee80211_key_conf*, int, struct ieee80211_key_seq*)'
'void ieee80211_get_tx_rates(struct ieee80211_vif*, struct ieee80211_sta*, struct sk_buff*, struct ieee80211_tx_rate*, int)'
'struct sk_buff* ieee80211_get_unsol_bcast_probe_resp_tmpl(struct ieee80211_hw*, struct ieee80211_vif*)'
'unsigned int ieee80211_hdrlen(__le16)'
'void ieee80211_iter_chan_contexts_atomic(struct ieee80211_hw*, void(*)(struct ieee80211_hw*, struct ieee80211_chanctx_conf*, void*), void*)'
'void ieee80211_iter_keys_rcu(struct ieee80211_hw*, struct ieee80211_vif*, void(*)(struct ieee80211_hw*, struct ieee80211_vif*, struct ieee80211_sta*, struct ieee80211_key_conf*, void*), void*)'
'void ieee80211_iterate_active_interfaces_atomic(struct ieee80211_hw*, u32, void(*)(void*, u8*, struct ieee80211_vif*), void*)'
'void ieee80211_iterate_interfaces(struct ieee80211_hw*, u32, void(*)(void*, u8*, struct ieee80211_vif*), void*)'
'void ieee80211_iterate_stations_atomic(struct ieee80211_hw*, void(*)(void*, struct ieee80211_sta*), void*)'
'void ieee80211_manage_rx_ba_offl(struct ieee80211_vif*, const u8*, unsigned int)'
'struct ieee80211_txq* ieee80211_next_txq(struct ieee80211_hw*, u8)'
'struct sk_buff* ieee80211_probereq_get(struct ieee80211_hw*, const u8*, const u8*, size_t, size_t)'
'struct sk_buff* ieee80211_proberesp_get(struct ieee80211_hw*, struct ieee80211_vif*)'
'void ieee80211_queue_delayed_work(struct ieee80211_hw*, struct delayed_work*, unsigned long)'
'void ieee80211_queue_work(struct ieee80211_hw*, struct work_struct*)'
'void ieee80211_radar_detected(struct ieee80211_hw*)'
'void ieee80211_ready_on_channel(struct ieee80211_hw*)'
'int ieee80211_register_hw(struct ieee80211_hw*)'
'void ieee80211_remain_on_channel_expired(struct ieee80211_hw*)'
'void ieee80211_report_low_ack(struct ieee80211_sta*, u32)'
'void ieee80211_restart_hw(struct ieee80211_hw*)'
'void ieee80211_return_txq(struct ieee80211_hw*, struct ieee80211_txq*, bool)'
'void ieee80211_rx_irqsafe(struct ieee80211_hw*, struct sk_buff*)'
'void ieee80211_rx_list(struct ieee80211_hw*, struct ieee80211_sta*, struct sk_buff*, struct list_head*)'
'void ieee80211_rx_napi(struct ieee80211_hw*, struct ieee80211_sta*, struct sk_buff*, struct napi_struct*)'
'void ieee80211_scan_completed(struct ieee80211_hw*, struct cfg80211_scan_info*)'
'void ieee80211_send_bar(struct ieee80211_vif*, u8*, u16, u16)'
'void ieee80211_sta_eosp(struct ieee80211_sta*)'
'int ieee80211_sta_ps_transition(struct ieee80211_sta*, bool)'
'void ieee80211_sta_pspoll(struct ieee80211_sta*)'
'void ieee80211_sta_register_airtime(struct ieee80211_sta*, u8, u32, u32)'
'void ieee80211_sta_uapsd_trigger(struct ieee80211_sta*, u8)'
'void ieee80211_stop_queue(struct ieee80211_hw*, int)'
'void ieee80211_stop_queues(struct ieee80211_hw*)'
'void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif*, const u8*, u16)'
'void ieee80211_tdls_oper_request(struct ieee80211_vif*, const u8*, enum nl80211_tdls_operation, u16, gfp_t)'
'struct sk_buff* ieee80211_tx_dequeue(struct ieee80211_hw*, struct ieee80211_txq*)'
'bool ieee80211_tx_prepare_skb(struct ieee80211_hw*, struct ieee80211_vif*, struct sk_buff*, int, struct ieee80211_sta**)'
'void ieee80211_tx_rate_update(struct ieee80211_hw*, struct ieee80211_sta*, struct ieee80211_tx_info*)'
'void ieee80211_tx_status(struct ieee80211_hw*, struct sk_buff*)'
'void ieee80211_tx_status_ext(struct ieee80211_hw*, struct ieee80211_tx_status*)'
'void ieee80211_tx_status_irqsafe(struct ieee80211_hw*, struct sk_buff*)'
'void ieee80211_txq_get_depth(struct ieee80211_txq*, unsigned long*, unsigned long*)'
'bool ieee80211_txq_may_transmit(struct ieee80211_hw*, struct ieee80211_txq*)'
'void ieee80211_txq_schedule_start(struct ieee80211_hw*, u8)'
'void ieee80211_unregister_hw(struct ieee80211_hw*)'
'void ieee80211_wake_queue(struct ieee80211_hw*, int)'
'void ieee80211_wake_queues(struct ieee80211_hw*)'
'const char* reg_initiator_name(enum nl80211_reg_initiator)'
'int regulatory_hint(struct wiphy*, const char*)'
'int regulatory_set_wiphy_regd(struct wiphy*, struct ieee80211_regdomain*)'
'int regulatory_set_wiphy_regd_sync(struct wiphy*, struct ieee80211_regdomain*)'
'void wiphy_apply_custom_regulatory(struct wiphy*, const struct ieee80211_regdomain*)'
'void wiphy_free(struct wiphy*)'
'struct wiphy* wiphy_new_nm(const struct cfg80211_ops*, int, const char*)'
'void wiphy_read_of_freq_limits(struct wiphy*)'
'int wiphy_register(struct wiphy*)'
'void wiphy_rfkill_set_hw_state_reason(struct wiphy*, bool, enum rfkill_hard_block_reasons)'
'struct ieee80211_hw* wiphy_to_ieee80211_hw(struct wiphy*)'
'void wiphy_unregister(struct wiphy*)'
1 variable symbol(s) removed
'const unsigned char rfc1042_header[6]'
6 function symbol(s) added
'int __traceiter_android_vh_do_futex(void*, int, unsigned int*, u32*)'
'int __traceiter_android_vh_futex_wait_end(void*, unsigned int, u32)'
'int __traceiter_android_vh_futex_wait_start(void*, unsigned int, u32)'
'int __traceiter_android_vh_futex_wake_this(void*, int, int, int, struct task_struct*)'
'int __traceiter_android_vh_futex_wake_traverse_plist(void*, struct plist_head*, int*, union futex_key, u32)'
'int __traceiter_android_vh_futex_wake_up_q_finish(void*, int, int)'
6 variable symbol(s) added
'struct tracepoint __tracepoint_android_vh_do_futex'
'struct tracepoint __tracepoint_android_vh_futex_wait_end'
'struct tracepoint __tracepoint_android_vh_futex_wait_start'
'struct tracepoint __tracepoint_android_vh_futex_wake_this'
'struct tracepoint __tracepoint_android_vh_futex_wake_traverse_plist'
'struct tracepoint __tracepoint_android_vh_futex_wake_up_q_finish'
function symbol changed from 'unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup*, unsigned long, gfp_t, bool)' to 'unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup*, unsigned long, gfp_t, unsigned int)'
CRC changed from 0x79f1d652 to 0x843f8baf
type changed from 'unsigned long(struct mem_cgroup*, unsigned long, gfp_t, bool)' to 'unsigned long(struct mem_cgroup*, unsigned long, gfp_t, unsigned int)'
parameter 4 type changed from 'bool' = '_Bool' to 'unsigned int'
resolved type changed from '_Bool' to 'unsigned int'
function symbol 'struct block_device* I_BDEV(struct inode*)' changed
CRC changed from 0xf2df037e to 0x5b8d1e5
function symbol 'void __ClearPageMovable(struct page*)' changed
CRC changed from 0xafefd4e to 0x12b3b0b6
function symbol 'void __SetPageMovable(struct page*, struct address_space*)' changed
CRC changed from 0x76517c1e to 0x2f7e012
... 1717 omitted; 1720 symbols have only CRC changes
type 'struct request' changed
byte size changed from 304 to 328
member 'struct { struct io_cq* icq; void* priv[2]; } elv' was added
member 'struct { unsigned int seq; struct list_head list; rq_end_io_fn* saved_end_io; } flush' was added
member 'union { struct { struct io_cq* icq; void* priv[2]; } elv; struct { unsigned int seq; struct list_head list; rq_end_io_fn* saved_end_io; } flush; }' was removed
19 members ('struct gendisk* rq_disk' .. 'u64 android_kabi_reserved1') changed
offset changed by 192
type 'struct rq' changed
byte size changed from 4544 to 4608
member 'unsigned long cpu_capacity_inverted' was added
10 members ('struct callback_head* balance_callback' .. 'struct list_head cfs_tasks') changed
offset changed by 64
35 members ('struct sched_avg avg_rt' .. 'u64 android_kabi_reserved4') changed
offset changed by 512
type 'struct cfg80211_conn' changed
was fully defined, is now only declared
type 'struct cfg80211_cached_keys' changed
was fully defined, is now only declared
type 'struct cfg80211_cqm_config' changed
was fully defined, is now only declared
type 'struct cfg80211_internal_bss' changed
was fully defined, is now only declared
type 'struct pkvm_module_ops' changed
byte size changed from 496 to 512
member 'void(* update_hcr_el2)(unsigned long, unsigned long)' was added
member 'void(* update_hfgwtr_el2)(unsigned long, unsigned long)' was added
51 members ('int(* register_host_perm_fault_handler)(int(*)(struct kvm_cpu_context*, u64, u64))' .. 'u64 android_kabi_reserved32') changed
offset changed by 128
Bug: 280599882
Change-Id: I797a325acc9e73853da7cce6be591402303f0467
Signed-off-by: Carlos Llamas <cmllamas@google.com>
|
||
|
|
085255b984 |
ANDROID: KVM: arm64: Allow tweaking HFGWTR_EL2 from modules
pKVM modules may need to enable fine grain traps. To allow this use-case, expose a function allowing to manipulate HFGWTR_EL2 on the current CPU. This configuration will be persistent across power management cycles and such as it is propagated all the way to the init params per-cpu struct. Bug: 245034629 Change-Id: If9c29849df50847d3a796345927bd51c37c358bc Signed-off-by: Quentin Perret <qperret@google.com> |
||
|
|
92c988d752 |
ANDROID: KVM: arm64: Allow tweaking HCR_EL2 from modules
pKVM modules may need to enable additional traps on top of what pKVM already enables. To allow this use-case, expose a function allowing to manipulate HCR_EL2 on the current CPU. This configuration will be persistent across power management cycles and such as it is propagated all the way to the init params per-cpu struct. Bug: 245034629 Change-Id: I21d596bd1d01f4edc48a188cc3c2eb78dc9a4444 Signed-off-by: Quentin Perret <qperret@google.com> |
||
|
|
efc340f8e7 |
ANDROID: GKI: Trimmed symbol lists for 80211 modules
Converting cfg80211.ko & mac80211.ko as vendor modules made some symbols cited in the symbol lists for partners but are no longer available in ksymtab as these features are disabled in the gki_defconfit to convert them to vendor modules. Manually trimmed the symbol lists for builds to succeed. Bug: 281137343 Test: TH Change-Id: Ieb60c12ddb4f2b89aa387df2d69c31f8cfee54d8 Signed-off-by: Ramji Jiyani <ramjiyani@google.com> |
||
|
|
e056397e42 |
ANDROID: GKI: DB845C: cfg/mac 80211 as vendor modules
Enabled cfg80211.ko and mac80211.ko as vendor module for db845c target. Bug: 281137343 Test: TH Change-Id: I466cbcc81598c3ff127078195974e4cedb2597a1 Signed-off-by: Ramji Jiyani <ramjiyani@google.com> |
||
|
|
ee1e4b7c5e |
ANDROID: GKI: cfg/mac 80211 as vendor modules
Convert cfg80211.ko and mac80211.ko as vendor modules to pave a way for merging 802.11be Wi-Fi 7 functionalities from upstream over the next year without affecting the KMI. Bug: 281137343 Test: TH Change-Id: Id1823924a3e5d8d03518599e6b3209e9cdd771d5 Signed-off-by: Ramji Jiyani <ramjiyani@google.com> |
||
|
|
f6d290fd57 |
ANDROID: block: Prepare for preserving the zoned write order
This patch does not change any functionality. This patch is a subset of the following patch that is expected to be merged upstream soon: https://lore.kernel.org/linux-block/20230407235822.1672286-3-bvanassche@acm.org/ Bug: 275581839 Bug: 277112517 Change-Id: I717d1c78233b92fd18297c81ef15335684da5d54 Signed-off-by: Bart Van Assche <bvanassche@google.com> |
||
|
|
b21f9994da |
ANDROID: ABI: Update oplus symbol list
6 function symbol(s) added 'int __traceiter_android_vh_do_futex(void*, int, unsigned int*, u32*)' 'int __traceiter_android_vh_futex_wait_end(void*, unsigned int, u32)' 'int __traceiter_android_vh_futex_wait_start(void*, unsigned int, u32)' 'int __traceiter_android_vh_futex_wake_this(void*, int, int, int, struct task_struct*)' 'int __traceiter_android_vh_futex_wake_traverse_plist(void*, struct plist_head*, int*, union futex_key, u32)' 'int __traceiter_android_vh_futex_wake_up_q_finish(void*, int, int)' 6 variable symbol(s) added 'struct tracepoint __tracepoint_android_vh_do_futex' 'struct tracepoint __tracepoint_android_vh_futex_wait_end' 'struct tracepoint __tracepoint_android_vh_futex_wait_start' 'struct tracepoint __tracepoint_android_vh_futex_wake_this' 'struct tracepoint __tracepoint_android_vh_futex_wake_traverse_plist' 'struct tracepoint __tracepoint_android_vh_futex_wake_up_q_finish' function symbol 'int __traceiter_android_rvh_cgroup_force_kthread_migration(void*, struct task_struct*, struct cgroup*, bool*)' changed CRC changed from 0xed48aa7b to 0x2957dc40 function symbol 'int __traceiter_android_rvh_cpu_cgroup_online(void*, struct cgroup_subsys_state*)' changed CRC changed from 0xccff069c to 0x6414873c function symbol 'int __traceiter_android_rvh_gic_v3_set_affinity(void*, struct irq_data*, const struct cpumask*, u64*, bool, void*, void*, u64)' changed CRC changed from 0xcecd5d30 to 0x9f93d48d ... 27 omitted; 30 symbols have only CRC changes Bug: 279355016 Bug: 243110112 Change-Id: I50789ce1d771b6f2e858a987a62892d48f4359e4 Signed-off-by: xieliujie <xieliujie@oppo.com> |
||
|
|
e5d032fb33 |
ANDROID: vendor_hooks: Add hooks for oem futex optimization
If an important task is going to sleep through do_futex(), find out it's futex-owner by the pid comes from userspace, and boost the owner by some means to shorten the sleep time. How to boost? Depends on these hooks: commit |
||
|
|
17bdc39270 |
BACKPORT: mm: vmpressure: don't count proactive reclaim in vmpressure
memory.reclaim is a cgroup v2 interface that allows users to proactively
reclaim memory from a memcg, without real memory pressure. Reclaim
operations invoke vmpressure, which is used: (a) To notify userspace of
reclaim efficiency in cgroup v1, and (b) As a signal for a memcg being
under memory pressure for networking (see
mem_cgroup_under_socket_pressure()).
For (a), vmpressure notifications in v1 are not affected by this change
since memory.reclaim is a v2 feature.
For (b), the effects of the vmpressure signal (according to Shakeel [1])
are as follows:
1. Reducing send and receive buffers of the current socket.
2. May drop packets on the rx path.
3. May throttle current thread on the tx path.
Since proactive reclaim is invoked directly by userspace, not by memory
pressure, it makes sense not to throttle networking. Hence, this change
makes sure that proactive reclaim caused by memory.reclaim does not
trigger vmpressure.
[1] https://lore.kernel.org/lkml/CALvZod68WdrXEmBpOkadhB5GPYmCXaDZzXH=yyGOCAjFRn4NDQ@mail.gmail.com/
[yosryahmed@google.com: update documentation]
Link: https://lkml.kernel.org/r/20220721173015.2643248-1-yosryahmed@google.com
Link: https://lkml.kernel.org/r/20220714064918.2576464-1-yosryahmed@google.com
Change-Id: I0e478c737dc9a17ad930fdf6fac0825b43285b29
Signed-off-by: Yosry Ahmed <yosryahmed@google.com>
Acked-by: Shakeel Butt <shakeelb@google.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Muchun Song <songmuchun@bytedance.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: David Hildenbrand <david@redhat.com>
Cc: Miaohe Lin <linmiaohe@huawei.com>
Cc: NeilBrown <neilb@suse.de>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Peter Xu <peterx@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit
|
||
|
|
c9707c205c |
UPSTREAM: memcg: introduce per-memcg reclaim interface
This patch series adds a memory.reclaim proactive reclaim interface.
The rationale behind the interface and how it works are in the first
patch.
This patch (of 4):
Introduce a memcg interface to trigger memory reclaim on a memory cgroup.
Use case: Proactive Reclaim
---------------------------
A userspace proactive reclaimer can continuously probe the memcg to
reclaim a small amount of memory. This gives more accurate and up-to-date
workingset estimation as the LRUs are continuously sorted and can
potentially provide more deterministic memory overcommit behavior. The
memory overcommit controller can provide more proactive response to the
changing behavior of the running applications instead of being reactive.
A userspace reclaimer's purpose in this case is not a complete replacement
for kswapd or direct reclaim, it is to proactively identify memory savings
opportunities and reclaim some amount of cold pages set by the policy to
free up the memory for more demanding jobs or scheduling new jobs.
A user space proactive reclaimer is used in Google data centers.
Additionally, Meta's TMO paper recently referenced a very similar
interface used for user space proactive reclaim:
https://dl.acm.org/doi/pdf/10.1145/3503222.3507731
Benefits of a user space reclaimer:
-----------------------------------
1) More flexible on who should be charged for the cpu of the memory
reclaim. For proactive reclaim, it makes more sense to be centralized.
2) More flexible on dedicating the resources (like cpu). The memory
overcommit controller can balance the cost between the cpu usage and
the memory reclaimed.
3) Provides a way to the applications to keep their LRUs sorted, so,
under memory pressure better reclaim candidates are selected. This
also gives more accurate and uptodate notion of working set for an
application.
Why memory.high is not enough?
------------------------------
- memory.high can be used to trigger reclaim in a memcg and can
potentially be used for proactive reclaim. However there is a big
downside in using memory.high. It can potentially introduce high
reclaim stalls in the target application as the allocations from the
processes or the threads of the application can hit the temporary
memory.high limit.
- Userspace proactive reclaimers usually use feedback loops to decide
how much memory to proactively reclaim from a workload. The metrics
used for this are usually either refaults or PSI, and these metrics will
become messy if the application gets throttled by hitting the high
limit.
- memory.high is a stateful interface, if the userspace proactive
reclaimer crashes for any reason while triggering reclaim it can leave
the application in a bad state.
- If a workload is rapidly expanding, setting memory.high to proactively
reclaim memory can result in actually reclaiming more memory than
intended.
The benefits of such interface and shortcomings of existing interface were
further discussed in this RFC thread:
https://lore.kernel.org/linux-mm/5df21376-7dd1-bf81-8414-32a73cea45dd@google.com/
Interface:
----------
Introducing a very simple memcg interface 'echo 10M > memory.reclaim' to
trigger reclaim in the target memory cgroup.
The interface is introduced as a nested-keyed file to allow for future
optional arguments to be easily added to configure the behavior of
reclaim.
Possible Extensions:
--------------------
- This interface can be extended with an additional parameter or flags
to allow specifying one or more types of memory to reclaim from (e.g.
file, anon, ..).
- The interface can also be extended with a node mask to reclaim from
specific nodes. This has use cases for reclaim-based demotion in memory
tiering systens.
- A similar per-node interface can also be added to support proactive
reclaim and reclaim-based demotion in systems without memcg.
- Add a timeout parameter to make it easier for user space to call the
interface without worrying about being blocked for an undefined amount
of time.
For now, let's keep things simple by adding the basic functionality.
[yosryahmed@google.com: worked on versions v2 onwards, refreshed to
current master, updated commit message based on recent
discussions and use cases]
Link: https://lkml.kernel.org/r/20220425190040.2475377-1-yosryahmed@google.com
Link: https://lkml.kernel.org/r/20220425190040.2475377-2-yosryahmed@google.com
Change-Id: Idaaac964dd5169376fcceca35f0676f847069bce
Signed-off-by: Shakeel Butt <shakeelb@google.com>
Co-developed-by: Yosry Ahmed <yosryahmed@google.com>
Signed-off-by: Yosry Ahmed <yosryahmed@google.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Wei Xu <weixugc@google.com>
Acked-by: Roman Gushchin <roman.gushchin@linux.dev>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Zefan Li <lizefan.x@bytedance.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Yu Zhao <yuzhao@google.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Greg Thelen <gthelen@google.com>
Cc: Chen Wandun <chenwandun@huawei.com>
Cc: Vaibhav Jain <vaibhav@linux.ibm.com>
Cc: "Michal Koutn" <mkoutny@suse.com>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit
|
||
|
|
dad20f7a85 |
Revert "Revert "sched/fair: Fixes for capacity inversion detection""
This reverts commit 937164e07b8e56fa2e34bf05ee956ac4fe6a6b47. It was perserving the ABI, but that is not needed anymore at this point in time. Change-Id: Ie7aaed3a99ce91258f7eae8683ea27b4d807b7b4 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
|
60e138c123 |
Revert "Revert "sched/uclamp: Fix a uninitialized variable warnings""
This reverts commit be0a0feb8e627f2f2f5324c65e5f91f921d4c1b8. It was perserving the ABI, but that is not needed anymore at this point in time. Change-Id: I8913de3e6e83876a2b2ed4460c935c3adb2a0721 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
|
745bc5edc0 |
Revert "Revert "sched/fair: Consider capacity inversion in util_fits_cpu()""
This reverts commit 16ed1a1dc35911c07b5978781cc4dd54d86a73b1. It was perserving the ABI, but that is not needed anymore at this point in time. Change-Id: If9b195f46c800a362857e91a349ed3aad4606030 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
|
96fa320d7c |
Revert "Revert "sched/fair: Detect capacity inversion""
This reverts commit 4c150ff0cc193b3b1fc6f0f68a4d79f9aac4f338. It was perserving the ABI, but that is not needed anymore at this point in time. Change-Id: Ibae2a63d0d9287f4cbcae1e34b467bdf5c82576b Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
|
137e27448f |
Revert "ANDROID: preserve CRC for xhci symbols"
This reverts commit
|
||
|
|
bee3580753 |
ANDROID: GKI: Remove MAKE_GOALS from build.config
* Instead use the equivalent kernel_build attribute. Bug: 236012223 Change-Id: Id90fa89dcadd95d8a8ecf570f46d9d71a925c388 Signed-off-by: Ulises Mendez Martinez <umendez@google.com> (cherry picked from commit ab7e63ef765d74b388e881800ad500c5f93199fc) |
||
|
|
ad4cc91ca6 |
ANDROID: KVM: arm64: Restrict pKVM hyp exports
The pKVM hypervisor uses the module_ops struct as a way to expose services to loadable modules. It doesn't however allow fine-grained definition of the license for each export, and doesn't have a way to check the license of the loaded module (yet). As such, the assumption is that said module is proprietary, and must NOT be allowed to use GPL symbols. Even though symbols such as __pkvm_load_el2_module are currently exported as GPL, these exports only apply to the kernel part of the module, which is usually only a proxy to load the hyp module, which may be built separately. Given the lack of license enforcement at load time, let's seek GPL compliance by preventing the accidental export of GPL symbols to hyp modules via pKVM's module_ops struct. To do so, add a build time check for the absence of such symbols from the KVM nvhe code entirely. In the future (Android 15+ and upstream), we should consider expanding the pKVM module loader to allow finer grained licensing of exports. This would allow exposing internal pKVM functions as GPL only for e.g. selftests and such w/o risking exports to proprietary modules. Bug: 263340138 Bug: 267430896 Change-Id: I09b81bfe322c0d2746c0349c5f217a5a76b6e33d Signed-off-by: Quentin Perret <qperret@google.com> |
||
|
|
961f2bd43e |
ANDROID: kleaf: move NDK_TRIPLE for arm to build.config.constants.
... so it can be read by Bazel @kernel_toolchain_info later. Test: TH Bug: 272164611 Change-Id: I04648f8fb28537544287797673810946dedb58f3 Signed-off-by: Yifan Hong <elsk@google.com> |
||
|
|
f162fabf2b |
ANDROID: Update the ABI symbol list
Adding the following symbols: - param_get_int Bug: 280403621 Bug: 278174418 Change-Id: Ie5a8875c1b18b40a3930138a43efcdf6258e509f Signed-off-by: Debarshi Dutta <debarshid@google.com> |
||
|
|
fc9823eddc |
ANDROID: usb: gadget: configfs: Protect composite_setup in a spinlock
In one of the SMMU faults (NULL Pointer derefernce) the following
race condition was observed and func->interfaces_nums was being
accessed for f_fs interface after it was unbinded resulting in a
crash.
Thread-1 Thread-2
ffs_func_req_match+0x68/0xc8
drain_workqueue+0xac
gsi_unbind[usb_f_gsi]+0x64
purge_configs_funcs+0xb4
configfs_composite_unbind+0xac
usb_gadget_remove_driver+0xac
usb_gadget_unregister_driver+0xd8
gadget_dev_desc_UDC_store+0x114
android_setup+0x164/0x2a8
dwc3_ep0_inspect_setup+0x100/0x440
dwc3_ep0_interrupt+0xac/0x300
dwc3_process_event_entry+0x80/0x724
dwc3_process_event_buf+0x80/0x434
dwc3_thread_interrupt+0x60/0x124
irq_thread_fn+0x54/0xe4
irq_thread+0x3a4/0x6ec
kthread+0x188/0x1ec
ret_from_fork+0x10/0x20
The events happened in order are as follows:
We got a setup packet for ffs interface and was passed to android
setup callback from ep0.c. As part of the delegate request, the
dwc->lock is released.
At this instant a composition switch occurred and as per traces
and crash dumps:
1. UDC Stop was done successfully. So run stop is set to '0'
2. Composite disconnect was done and ep disable for all ep's is done
gadget->connected = FALSE
3. Async callbacks disabled
dwc->aysnc_callbacks = FALSE
4. composite unbind is going on and the ffs interface in question is
unbinded
udc->driver != NULL
(as per crash dump indicating that unbind is in progress)
5. Purge configs was ongoing because as per crash dumps:
otg_desc[0] = NULL;
cdev->os_desc_req->buf is not NULL
(configfs_composite_unbind is going on, but composite_dev_cleanup
not yet done)
As per the traces:
23.794712: dwc3_event event=49216 ep0state=1 str=
23.794909: dwc3_ctrl_req bRequestType=161 bRequest=1 wValue=0
wIndex=2 wLength=4096
23.799740: usb_gadget_disconnect speed=5 max_speed=6 state=7
mA=0 deactivated=0 connected=0 ret=0
This indicated that android setup came first followed by composite
disconnect. Since the dwc->lock was released by delegate_request,
soft disconnect gets unblocked and runs parallel to composite setup.
After this, there is no check in path of composite setup
indicating unbind happened and bail out is necessary instead of
executing any function ops.
Protect composite_setup (as part of android_setup) in a spinlock
to block composite_disconnect/unbind running in parallel.
Moreover, in the configfs counterpart of android_setup (configfs_
composite_stetup), the composite_setup call is done with spinlock
held.
It is only the android_setup missing this lock.
Bug: 280548269
Fixes:
|
||
|
|
df4ee615e0 |
Revert "ANDROID: uid_sys_stat: split the global lock uid_lock to the fine-grained"
This reverts commit
|
||
|
|
625a05a48a |
ANDROID: GKI: Update symbol list for Amlogic
2 function symbol(s) added 'int __traceiter_android_vh_cma_drain_all_pages_bypass(void*, unsigned int, bool*)' 'struct cgroup_subsys_state* css_next_descendant_pre(struct cgroup_subsys_state*, struct cgroup_subsys_state*)' 1 variable symbol(s) added 'struct tracepoint __tracepoint_android_vh_cma_drain_all_pages_bypass' Bug: 280418312 Change-Id: Ie99a46ddfefda163cbbfbd005390d15f7428fea6 Signed-off-by: Wanwei Jiang <wanwei.jiang@amlogic.com> |
||
|
|
3cae1f44dd |
ANDROID: GKI: x86_64: Remove 80211 from protected modules
cfg80211 & mac80211 are being converted to vendor modules. To be consistent for both arm64 & x86_64 remove them from protected to unprotected; so they can be converted to vendor modules for x86_64 as well. This also helps keep things simpler for virtual_device; so it doesn't have to maintain seperate list for these architectures w.r.t. these modules. Bug: 281137343 Test: TH Change-Id: Ica028593f30528c361a6ab30da8cb5be5187d067 Signed-off-by: Ramji Jiyani <ramjiyani@google.com> |
||
|
|
896a2f6ac8 |
ANDROID: GKI: Update owners for GKI modules lists
Add ramjiyani@ as per-file owner for: android/abi_gki_protected_exports_* android/gki_aarch64_protected_modules android/gki_x86_64_protected_modules Update required due to addition of multi arch support caused renaming of these files with arch name in them. Bug: 151893768 Test: TH Change-Id: Ice5c054f90b3fc4f91bfe73f680082dc129c0310 Signed-off-by: Ramji Jiyani <ramjiyani@google.com> |
||
|
|
913110b790 |
FROMLIST: binder: fix UAF caused by faulty buffer cleanup
In binder_transaction_buffer_release() the 'failed_at' offset indicates the number of objects to clean up. However, this function was changed by commit |
||
|
|
73042c1155 |
ANDROID: ABI: Update oplus symbol list
17 function symbol(s) added 'int __traceiter_android_vh_binder_free_proc(void*, struct binder_proc*)' 'int __traceiter_android_vh_binder_has_work_ilocked(void*, struct binder_thread*, bool, int*)' 'int __traceiter_android_vh_binder_looper_state_registered(void*, struct binder_thread*, struct binder_proc*)' 'int __traceiter_android_vh_binder_preset(void*, struct hlist_head*, struct mutex*)' 'int __traceiter_android_vh_binder_proc_transaction_entry(void*, struct binder_proc*, struct binder_transaction*, struct binder_thread**, int, bool, bool, bool*)' 'int __traceiter_android_vh_binder_proc_transaction_finish(void*, struct binder_proc*, struct binder_transaction*, struct task_struct*, bool, bool)' 'int __traceiter_android_vh_binder_read_done(void*, struct binder_proc*, struct binder_thread*)' 'int __traceiter_android_vh_binder_select_worklist_ilocked(void*, struct list_head**, struct binder_thread*, struct binder_proc*, int)' 'int __traceiter_android_vh_binder_thread_read(void*, struct list_head**, struct binder_proc*, struct binder_thread*)' 'int __traceiter_android_vh_binder_thread_release(void*, struct binder_proc*, struct binder_thread*)' 'int __traceiter_android_vh_mutex_can_spin_on_owner(void*, struct mutex*, int*)' 'int __traceiter_android_vh_mutex_opt_spin_finish(void*, struct mutex*, bool)' 'int __traceiter_android_vh_mutex_opt_spin_start(void*, struct mutex*, bool*, int*)' 'int __traceiter_android_vh_rwsem_can_spin_on_owner(void*, struct rw_semaphore*, bool*)' 'int __traceiter_android_vh_rwsem_opt_spin_finish(void*, struct rw_semaphore*, bool)' 'int __traceiter_android_vh_rwsem_opt_spin_start(void*, struct rw_semaphore*, bool*, int*, bool)' 'int __traceiter_android_vh_rwsem_wake_finish(void*, struct rw_semaphore*)' 17 variable symbol(s) added 'struct tracepoint __tracepoint_android_vh_binder_free_proc' 'struct tracepoint __tracepoint_android_vh_binder_has_work_ilocked' 'struct tracepoint __tracepoint_android_vh_binder_looper_state_registered' 'struct tracepoint __tracepoint_android_vh_binder_preset' 'struct tracepoint __tracepoint_android_vh_binder_proc_transaction_entry' 'struct tracepoint __tracepoint_android_vh_binder_proc_transaction_finish' 'struct tracepoint __tracepoint_android_vh_binder_read_done' 'struct tracepoint __tracepoint_android_vh_binder_select_worklist_ilocked' 'struct tracepoint __tracepoint_android_vh_binder_thread_read' 'struct tracepoint __tracepoint_android_vh_binder_thread_release' 'struct tracepoint __tracepoint_android_vh_mutex_can_spin_on_owner' 'struct tracepoint __tracepoint_android_vh_mutex_opt_spin_finish' 'struct tracepoint __tracepoint_android_vh_mutex_opt_spin_start' 'struct tracepoint __tracepoint_android_vh_rwsem_can_spin_on_owner' 'struct tracepoint __tracepoint_android_vh_rwsem_opt_spin_finish' 'struct tracepoint __tracepoint_android_vh_rwsem_opt_spin_start' 'struct tracepoint __tracepoint_android_vh_rwsem_wake_finish' Bug: 193384408 Change-Id: I81b918a185ee810af97b56f1fc695af45119c1e8 Signed-off-by: Liujie Xie <xieliujie@oppo.com> Signed-off-by: Carlos Llamas <cmllamas@google.com> |
||
|
|
ad62172a4b |
ANDROID: vendor_hooks: Add hooks to select binder worklist
trace_android_vh_binder_proc_transaction_entry:
We need change binder thread so that this work can be added in
proc->todo, if we found the binder thread, skip native logic.
trace_android_vh_binder_select_worklist_ilocked:
we need this because we can't change list point in ”trace_android_vh_binder_thread_read“,
otherwise, If a work has beed added in our own defined list before,
current may goto retry and loop again and again.
Bug: 219898723
Change-Id: Ifdb3429c9ddac521bc75c1d21740ee7cc4b8f143
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
(cherry picked from commit
|
||
|
|
ca14c8d469 |
ANDROID: vendor_hooks: Add hooks for binder
We want to add some hooks in the binder module so that we can reduce block time until binder thread is available Here are what new hooks do for: 1、android_vh_binder_looper_state_registered: choose a binder thread(do proc work) as a low-level thread.Only this thread has power to excute background binder transaction. 2、android_vh_binder_thread_read: let binder thread do works which come from our list. 3、android_vh_binder_free_proc: free some pointers and variable. 4、android_vh_binder_thread_release: free the list that we create before. 5、android_vh_binder_has_work_ilocked: to check if our list has work. 6、android_vh_binder_read_done: because of we add hook in binder_has_work_ilocked, 7、android_vh_binder_preset: mark target proc's binder threads. binder_has_work_ilocked may return true, so we try to wake up low-level thread immediately. Bug: 212483521 Change-Id: Ic40f452cc4dcf8fc85422e23e6f1a7ad77547309 Signed-off-by: Liujie Xie <xieliujie@oppo.com> (cherry picked from commit 8d6074509e4ec7e10acf6ee78277ff8cd19e49d0) |
||
|
|
456a8d4c1f |
ANDROID: vendor_hooks: Add hooks for rwsem and mutex
Add hooks to apply oem's optimization of rwsem and mutex Bug: 182237112 Signed-off-by: xieliujie <xieliujie@oppo.com> (cherry picked from commit |
||
|
|
c97f4f3ed5 |
ANDROID: vendor_hooks: Add hooks for binder proc transaction
We need pointers to proc and t, the current hooks in binder_proc_transaction
are unable to use.
Bug: 208910215
Change-Id: I730964f965a015e5f5a3e237d9b3bd084b5bd0d0
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
(cherry picked from commit
|
||
|
|
a945254842 |
ANDROID: vendor_hooks: Add hooks for mutex and rwsem optimistic spin
These hooks help us do the following things:
a) Record the number of mutex and rwsem optimistic spin.
b) Monitor the time of mutex and rwsem optimistic spin.
c) Make it possible if oems don't want mutex and rwsem to optimistic spin
for a long time.
Bug: 267565260
Change-Id: I2bee30fb17946be85e026213b481aeaeaee2459f
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
(cherry picked from commit
|
||
|
|
50bae08f22 |
ANDROID: Update the ABI symbol list
Adding the following symbols: - __drmm_crtc_alloc_with_planes Bug: 275278929 Change-Id: I5f6e650aa850eb2639abcf5c033e1ed43814d30f Signed-off-by: Adrian Salido <salidoa@google.com> |
||
|
|
358b59f1bc |
ANDROID: usb: Add vendor hook for usb suspend and resume
Add the hook that vendor can design and bypass the suspend/resume.
When the bypass is set, skip the orignal suspend/resume methods.
In mobile, a co-processor can be used with USB audio, and ACPU may
be able to sleep in such condition to improve power consumption.
We will need vendor hook to support this.
Bug: 192774581
Signed-off-by: Puma Hsu <pumahsu@google.com>
Change-Id: Ic62a8a1e662bbe3fb0aa17af7491daace0b9f18a
(cherry picked from commit
|
||
|
|
4cbf19a6f8 |
ANDROID: sound: usb: add vendor hook for cpu suspend support
Add vendor hook android_vh_sound_check_support_cpu_suspend
to allow ACPU to suspend during USB playback/capture,
if this is supported.
Bug: 192206510
Change-Id: Ia8d4c335db27de5fcefab13cab653fd1ae34f691
Signed-off-by: JJ Lee <leejj@google.com>
(cherry picked from commit
|
||
|
|
3ac740c9c7 |
ANDROID: Update the ABI symbol list
Adding the following symbols: - __traceiter_android_rvh_usb_dev_suspend - __traceiter_android_vh_sound_usb_support_cpu_suspend - __traceiter_android_vh_usb_dev_resume - __tracepoint_android_rvh_usb_dev_suspend - __tracepoint_android_vh_sound_usb_support_cpu_suspend - __tracepoint_android_vh_usb_dev_resume Bug: 255700946 Change-Id: I2860d50bf30714cfb627df710f3a4a9faa5f04b4 Signed-off-by: Albert Wang <albertccwang@google.com> |
||
|
|
d03243dd76 |
ANDROID: ABI: Update oplus symbol list
1 function symbol(s) added 'int __traceiter_sched_stat_runtime(void*, struct task_struct*, u64, u64)' 1 variable symbol(s) added 'struct tracepoint __tracepoint_sched_stat_runtime' Bug: 193384408 Change-Id: I76ddd3ec107c1474b53a3a0c4bd0fa4386ac6ac3 Signed-off-by: xieliujie <xieliujie@oppo.com> |
||
|
|
f9688670ca |
ANDROID: sched: Add trace_android_rvh_setscheduler
Sync to android13-5.10. This vendor hook is declared already. Bug: 245675204 Change-Id: Ib081b52542380d22317f225a50b553cda5f2634c Signed-off-by: Rick Yiu <rickyiu@google.com> |
||
|
|
8a73c29f3e |
ANDROID: ABI: Update oplus symbol list
4 function symbol(s) added 'int __traceiter_android_vh_record_mutex_lock_starttime(void*, struct task_struct*, unsigned long)' 'int __traceiter_android_vh_record_pcpu_rwsem_starttime(void*, struct task_struct*, unsigned long)' 'int __traceiter_android_vh_record_rtmutex_lock_starttime(void*, struct task_struct*, unsigned long)' 'int __traceiter_android_vh_record_rwsem_lock_starttime(void*, struct task_struct*, unsigned long)' 4 variable symbol(s) added 'struct tracepoint __tracepoint_android_vh_record_mutex_lock_starttime' 'struct tracepoint __tracepoint_android_vh_record_pcpu_rwsem_starttime' 'struct tracepoint __tracepoint_android_vh_record_rtmutex_lock_starttime' 'struct tracepoint __tracepoint_android_vh_record_rwsem_lock_starttime' Bug: 193384408 Change-Id: Ib3c7341fe0799424d0232e5b422648f500563887 Signed-off-by: xieliujie <xieliujie@oppo.com> |
||
|
|
3568391d31 |
ANDROID: vendor_hook: add hooks to protect locking-tsk in cpu scheduler
Providing vendor hooks to record the start time of holding the lock, which protects rwsem/mutex locking-process from being preemptedfor a short time in some cases. - android_vh_record_mutex_lock_starttime - android_vh_record_rtmutex_lock_starttime - android_vh_record_rwsem_lock_starttime - android_vh_record_pcpu_rwsem_starttime Bug: 241191475 Signed-off-by: Peifeng Li <lipeifeng@oppo.com> Change-Id: I0e967a1e8b77c32a1ad588acd54028fae2f90c4e (cherry picked from commit f7294947672eb6b786f3c16b49e71e6a239101ad) |
||
|
|
dad238bd8d |
ANDROID: Delete MODULES_ORDER.
This file is no longer useful after build.sh is deprecated. The functionality of the list has been moved to //common:kernel_aarch64 module_implicit_outs in Kleaf. Bug: 257119427 Test: TH Change-Id: Id7e2c9b09d8b4eb96a4f055ce5e01964f8b6361c Signed-off-by: Yifan Hong <elsk@google.com> |
||
|
|
9494fdd610 | Merge "Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-5.15.y' into android14-5.15" into android14-5.15 | ||
|
|
3b371a4431 |
ANDROID: GKI: Add symbol list for ZEKU
Add symbol list for ZEKU at the first time 470 function symbol(s) added 'u64 __blkg_prfill_u64(struct seq_file*, struct blkg_policy_data*, u64)' 'void* __devm_alloc_percpu(struct device*, size_t, size_t)' 'void __free_iova(struct iova_domain*, struct iova*)' 'struct net_device* __ip_dev_find(struct net*, __be32, bool)' 'void __ip_select_ident(struct net*, struct iphdr*, int)' 'void* __kmalloc_track_caller(size_t, gfp_t, unsigned long)' 'int __media_device_register(struct media_device*, struct module*)' 'void** __memcat_p(void**, void**)' 'void __module_put_and_exit(struct module*, long)' 'void __ndisc_fill_addr_option(struct sk_buff*, int, void*, int, int)' 'int __netlink_dump_start(struct sock*, struct sk_buff*, const struct nlmsghdr*, struct netlink_dump_control*)' 'bool __percpu_down_read(struct percpu_rw_semaphore*, bool)' 'int __percpu_init_rwsem(struct percpu_rw_semaphore*, const char*, struct lock_class_key*)' 'struct scsi_device* __scsi_add_device(struct Scsi_Host*, uint, uint, u64, void*)' 'int __scsi_execute(struct scsi_device*, const unsigned char*, int, void*, unsigned int, unsigned char*, struct scsi_sense_hdr*, int, int, u64, req_flags_t, int*)' 'struct scsi_device* __scsi_iterate_devices(struct Scsi_Host*, struct scsi_device*)' 'int __serdev_device_driver_register(struct serdev_device_driver*, struct module*)' 'int __sk_receive_skb(struct sock*, struct sk_buff*, int, unsigned int, bool)' 'int __sock_queue_rcv_skb(struct sock*, struct sk_buff*)' 'void __sock_recv_timestamp(struct msghdr*, struct sock*, struct sk_buff*)' 'void __sock_recv_ts_and_drops(struct msghdr*, struct sock*, struct sk_buff*)' 'void __sock_recv_wifi_status(struct msghdr*, struct sock*, struct sk_buff*)' 'void __sock_tx_timestamp(__u16, __u8*)' 'int __srcu_read_lock(struct srcu_struct*)' 'void __srcu_read_unlock(struct srcu_struct*, int)' 'int __traceiter_android_rvh_iommu_setup_dma_ops(void*, struct device*, u64, u64)' 'int __traceiter_android_vh_mpam_set(void*, struct task_struct*, struct task_struct*)' 'int __traceiter_android_vh_set_memory_nx(void*, unsigned long, int)' 'int __traceiter_android_vh_set_module_permit_after_init(void*, const struct module*)' 'int __traceiter_wbc_writepage(void*, struct writeback_control*, struct backing_dev_info*)' 'struct tty_driver* __tty_alloc_driver(unsigned int, struct module*, unsigned long)' 'int __v4l2_device_register_subdev_nodes(struct v4l2_device*, bool)' 'void __wake_up_sync_key(struct wait_queue_head*, unsigned int, void*)' 'struct proc_dir_entry* _proc_mkdir(const char*, umode_t, struct proc_dir_entry*, void*, bool)' 'int _raw_spin_trylock_bh(raw_spinlock_t*)' 'int access_process_vm(struct task_struct*, unsigned long, void*, int, unsigned int)' 'void add_wait_queue_exclusive(struct wait_queue_head*, struct wait_queue_entry*)' 'void addrconf_add_linklocal(struct inet6_dev*, const struct in6_addr*, u32)' 'int addrconf_prefix_rcv_add_addr(struct net*, struct net_device*, const struct prefix_info*, struct inet6_dev*, const struct in6_addr*, int, u32, bool, bool, __u32, u32)' 'void aes_encrypt(const struct crypto_aes_ctx*, u8*, const u8*)' 'int aes_expandkey(struct crypto_aes_ctx*, const u8*, unsigned int)' 'int alg_test(const char*, const char*, u32, u32)' 'struct cpu_rmap* alloc_cpu_rmap(unsigned int, gfp_t)' 'struct iova* alloc_iova(struct iova_domain*, unsigned long, unsigned long, bool)' 'enum arm_smccc_conduit arm_smccc_1_1_get_conduit()' 'arm_smccc_1_2_hvc' 'arm_smccc_1_2_smc' 'u32 arm_smccc_get_version()' 'async_cookie_t async_schedule_node(async_func_t, void*, int)' 'int bit_wait(struct wait_bit_key*, int)' 'unsigned long* bitmap_alloc(unsigned int, gfp_t)' 'int bitmap_allocate_region(unsigned long*, unsigned int, int)' 'int bitmap_find_free_region(unsigned long*, unsigned int, int)' 'void bitmap_release_region(unsigned long*, unsigned int, int)' 'void blk_cleanup_queue(struct request_queue*)' 'unsigned int blk_crypto_keyslot_index(struct blk_crypto_keyslot*)' 'bool blk_crypto_register(struct blk_crypto_profile*, struct request_queue*)' 'void blk_crypto_reprogram_all_keys(struct blk_crypto_profile*)' 'struct request_queue* blk_mq_init_queue(struct blk_mq_tag_set*)' 'int blk_mq_map_queues(struct blk_mq_queue_map*)' 'void blk_pm_runtime_init(struct request_queue*, struct device*)' 'void blk_queue_update_dma_alignment(struct request_queue*, int)' 'void blk_queue_update_dma_pad(struct request_queue*, unsigned int)' 'void blk_stat_enable_accounting(struct request_queue*)' 'int blkcg_activate_policy(struct request_queue*, const struct blkcg_policy*)' 'void blkcg_deactivate_policy(struct request_queue*, const struct blkcg_policy*)' 'int blkcg_policy_register(struct blkcg_policy*)' 'void blkcg_policy_unregister(struct blkcg_policy*)' 'void blkcg_print_blkgs(struct seq_file*, struct blkcg*, u64(*)(struct seq_file*, struct blkg_policy_data*, int), const struct blkcg_policy*, int, bool)' 'void blkg_conf_finish(struct blkg_conf_ctx*)' 'int blkg_conf_prep(struct blkcg*, const struct blkcg_policy*, char*, struct blkg_conf_ctx*)' 'void bsg_job_done(struct bsg_job*, int, unsigned int)' 'void bsg_remove_queue(struct request_queue*)' 'struct request_queue* bsg_setup_queue(struct device*, const char*, bsg_job_fn*, bsg_timeout_fn*, int)' 'int cdc_parse_cdc_header(struct usb_cdc_parsed_header*, struct usb_interface*, u8*, int)' 'void class_dev_iter_exit(struct class_dev_iter*)' 'void class_dev_iter_init(struct class_dev_iter*, struct class*, struct device*, const struct device_type*)' 'struct device* class_dev_iter_next(struct class_dev_iter*)' 'int class_for_each_device(struct class*, struct device*, void*, int(*)(struct device*, void*))' 'void cleanup_srcu_struct(struct srcu_struct*)' 'bool clk_is_match(const struct clk*, const struct clk*)' 'u64 clockevent_delta2ns(unsigned long, struct clock_event_device*)' 'void clockevents_register_device(struct clock_event_device*)' 'void config_group_init(struct config_group*)' 'struct config_item* config_item_get(struct config_item*)' 'void config_item_put(struct config_item*)' 'int config_item_set_name(struct config_item*, const char*, ...)' 'int configfs_register_group(struct config_group*, struct config_group*)' 'int configfs_register_subsystem(struct configfs_subsystem*)' 'void configfs_unregister_subsystem(struct configfs_subsystem*)' 'int cpu_pm_unregister_notifier(struct notifier_block*)' 'u16 crc16(u16, const u8*, size_t)' 'u16 crc_ccitt(u16, const u8*, size_t)' 'int crypto_ahash_final(struct ahash_request*)' 'struct crypto_kpp* crypto_alloc_kpp(const char*, u32, u32)' 'int crypto_authenc_extractkeys(struct crypto_authenc_keys*, const u8*, unsigned int)' 'int crypto_ecdh_encode_key(char*, unsigned int, const struct ecdh*)' 'unsigned int crypto_ecdh_key_len(const struct ecdh*)' 'int crypto_get_default_rng()' 'int crypto_has_ahash(const char*, u32, u32)' 'void crypto_put_default_rng()' 'void d_add(struct dentry*, struct inode*)' 'struct dentry* d_alloc_name(struct dentry*, const char*)' 'void debugfs_create_regset32(const char*, umode_t, struct dentry*, struct debugfs_regset32*)' 'bool debugfs_initialized()' 'void dev_add_pack(struct packet_type*)' 'int dev_change_flags(struct net_device*, unsigned int, struct netlink_ext_ack*)' 'void dev_close_many(struct list_head*, bool)' 'struct net_device* dev_get_by_index_rcu(struct net*, int)' 'unsigned int dev_get_flags(const struct net_device*)' 'struct net_device* dev_getbyhwaddr_rcu(struct net*, unsigned short, const char*)' 'struct net_device* dev_getfirstbyhwtype(struct net*, unsigned short)' 'void dev_load(struct net*, const char*)' 'int dev_mc_sync(struct net_device*, struct net_device*)' 'bool dev_nit_active(struct net_device*)' 'struct dev_pm_opp* dev_pm_opp_find_level_exact(struct device*, unsigned int)' 'void dev_pm_opp_remove(struct device*, unsigned long)' 'void dev_remove_pack(struct packet_type*)' 'int dev_set_allmulti(struct net_device*, int)' 'int dev_set_mac_address(struct net_device*, struct sockaddr*, struct netlink_ext_ack*)' 'int dev_set_promiscuity(struct net_device*, int)' 'int dev_uc_add(struct net_device*, const unsigned char*)' 'int dev_uc_del(struct net_device*, const unsigned char*)' 'int dev_uc_sync(struct net_device*, struct net_device*)' 'bool dev_valid_name(const char*)' 'int device_match_any(struct device*, const void*)' 'int device_match_name(struct device*, const void*)' 'int device_move(struct device*, struct device*, enum dpm_order)' 'int device_property_read_u8_array(struct device*, const char*, u8*, size_t)' 'void devm_led_classdev_unregister(struct device*, struct led_classdev*)' 'void* devm_pci_remap_cfgspace(struct device*, resource_size_t, resource_size_t)' 'int divider_determine_rate(struct clk_hw*, struct clk_rate_request*, const struct clk_div_table*, u8, unsigned long)' 'struct sg_table* dma_alloc_noncontiguous(struct device*, size_t, enum dma_data_direction, gfp_t, unsigned long)' 'struct page* dma_alloc_pages(struct device*, size_t, dma_addr_t*, enum dma_data_direction, gfp_t)' 'long dma_buf_set_name(struct dma_buf*, const char*)' 'void dma_free_noncontiguous(struct device*, size_t, struct sg_table*, enum dma_data_direction)' 'void dma_free_pages(struct device*, size_t, struct page*, dma_addr_t, enum dma_data_direction)' 'int dma_heap_bufferfd_alloc(struct dma_heap*, size_t, unsigned int, unsigned int)' 'int dma_supported(struct device*, u64)' 'int driver_attach(struct device_driver*)' 'void dst_cache_destroy(struct dst_cache*)' 'struct dst_entry* dst_cache_get(struct dst_cache*)' 'int dst_cache_init(struct dst_cache*, gfp_t)' 'void dst_cache_set_ip4(struct dst_cache*, struct dst_entry*, __be32)' 'void dst_cache_set_ip6(struct dst_cache*, struct dst_entry*, const struct in6_addr*)' 'struct elevator_queue* elevator_alloc(struct request_queue*, struct elevator_type*)' 'int elv_register(struct elevator_type*)' 'void elv_unregister(struct elevator_type*)' 'struct extcon_dev* extcon_find_edev_by_node(struct device_node*)' 'struct extcon_dev* extcon_get_extcon_dev(const char*)' 'struct iova* find_iova(struct iova_domain*, unsigned long)' 'void fqdir_exit(struct fqdir*)' 'int fqdir_init(struct fqdir**, struct inet_frags*, struct net*)' 'void free_irq_cpu_rmap(struct cpu_rmap*)' 'int fwnode_property_read_u8_array(const struct fwnode_handle*, const char*, u8*, size_t)' 'struct file_system_type* get_fs_type(const char*)' 'unsigned int get_next_ino()' 'int get_tree_single(struct fs_context*, int(*)(struct super_block*, struct fs_context*))' 'int gre_add_protocol(const struct gre_protocol*, u8)' 'int gre_del_protocol(const struct gre_protocol*, u8)' 'u64 hashlen_string(const void*, const char*)' 'int hid_add_device(struct hid_device*)' 'struct hid_device* hid_allocate_device()' 'void hid_destroy_device(struct hid_device*)' 'bool hid_ignore(struct hid_device*)' 'int hid_input_report(struct hid_device*, int, u8*, u32, int)' 'int hid_parse_report(struct hid_device*, __u8*, unsigned int)' 'struct icc_path* icc_get(struct device*, int, int)' 'void icc_node_del(struct icc_node*)' 'void icc_node_destroy(int)' 'int inet6_csk_xmit(struct sock*, struct sk_buff*, struct flowi*)' 'void inet_frag_destroy(struct inet_frag_queue*)' 'struct inet_frag_queue* inet_frag_find(struct fqdir*, void*)' 'void inet_frag_kill(struct inet_frag_queue*)' 'int inet_frag_queue_insert(struct inet_frag_queue*, struct sk_buff*, int, int)' 'void inet_frag_reasm_finish(struct inet_frag_queue*, struct sk_buff*, void*, bool)' 'void* inet_frag_reasm_prepare(struct inet_frag_queue*, struct sk_buff*, struct sk_buff*)' 'void inet_frags_fini(struct inet_frags*)' 'int inet_frags_init(struct inet_frags*)' 'int init_srcu_struct(struct srcu_struct*)' 'void input_ff_destroy(struct input_dev*)' 'int iova_cache_get()' 'void iova_cache_put()' 'int ip6_dst_hoplimit(struct dst_entry*)' 'int ip_local_out(struct net*, struct sock*, struct sk_buff*)' 'int ip_mc_join_group(struct sock*, struct ip_mreqn*)' 'int ip_queue_xmit(struct sock*, struct sk_buff*, struct flowi*)' 'struct rtable* ip_route_output_flow(struct net*, struct flowi4*, const struct sock*)' 'struct net_device* ipv6_dev_find(struct net*, const struct in6_addr*, struct net_device*)' 'bool ipv6_ext_hdr(u8)' 'int irq_cpu_rmap_add(struct cpu_rmap*, int)' 'int irq_set_affinity_notifier(unsigned int, struct irq_affinity_notify*)' 'void iterate_supers_type(struct file_system_type*, void(*)(struct super_block*, void*), void*)' 'int kernel_accept(struct socket*, struct socket**, int)' 'int kernel_listen(struct socket*, int)' 'void kfree_skb_partial(struct sk_buff*, bool)' 'void kill_litter_super(struct super_block*)' 'int kobject_set_name(struct kobject*, const char*, ...)' 'int kstrtou16_from_user(const char*, size_t, unsigned int, u16*)' 'u64 ktime_get_boot_fast_ns()' 'void ktime_get_coarse_ts64(struct timespec64*)' 'const char* kvasprintf_const(gfp_t, const char*, va_list)' 'void linkwatch_fire_event(struct net_device*)' 'void media_device_cleanup(struct media_device*)' 'void media_device_init(struct media_device*)' 'void media_device_unregister(struct media_device*)' 'int media_entity_pads_init(struct media_entity*, u16, struct media_pad*)' 'void* memscan(void*, int, size_t)' 'int mmc_can_erase(struct mmc_card*)' 'int mmc_can_trim(struct mmc_card*)' 'int mmc_cmdq_disable(struct mmc_card*)' 'int mmc_cmdq_enable(struct mmc_card*)' 'int mmc_erase(struct mmc_card*, unsigned int, unsigned int, unsigned int)' 'int mmc_hw_reset(struct mmc_host*)' 'bool mmc_is_req_done(struct mmc_host*, struct mmc_request*)' 'int mmc_register_driver(struct mmc_driver*)' 'void mmc_retune_release(struct mmc_host*)' 'int mmc_set_blocklen(struct mmc_card*, unsigned int)' 'int mmc_start_request(struct mmc_host*, struct mmc_request*)' 'void mmc_unregister_driver(struct mmc_driver*)' 'void mmc_wait_for_req_done(struct mmc_host*, struct mmc_request*)' 'int n_tty_ioctl_helper(struct tty_struct*, struct file*, unsigned int, unsigned long)' 'void napi_gro_flush(struct napi_struct*, bool)' 'void neigh_destroy(struct neighbour*)' 'struct neighbour* neigh_lookup(struct neigh_table*, const void*, struct net_device*)' 'int netdev_set_num_tc(struct net_device*, u8)' 'int netdev_set_tc_queue(struct net_device*, u8, u16, u16)' 'bool netlink_capable(const struct sk_buff*, int)' 'bool netlink_net_capable(const struct sk_buff*, int)' 'unsigned long nr_free_buffer_pages()' 'struct __kernel_old_timeval ns_to_kernel_old_timeval(s64)' 'struct clk* of_clk_get_from_provider(struct of_phandle_args*)' 'struct dma_chan* of_dma_xlate_by_chan_id(struct of_phandle_args*, struct of_dma*)' 'struct device_node* of_graph_get_port_parent(struct device_node*)' 'struct device_node* of_graph_get_remote_endpoint(const struct device_node*)' 'bool of_graph_is_present(const struct device_node*)' 'int of_pci_get_max_link_speed(struct device_node*)' 'enum usb_phy_interface of_usb_get_phy_mode(struct device_node*)' 'void on_each_cpu_cond_mask(smp_cond_func_t, smp_call_func_t, void*, bool, const struct cpumask*)' 'int out_of_line_wait_on_bit(void*, int, wait_bit_action_f*, unsigned int)' 'int param_get_uint(char*, const struct kernel_param*)' 'int param_set_uint(const char*, const struct kernel_param*)' 'bool pci_ats_supported(struct pci_dev*)' 'void pci_disable_ats(struct pci_dev*)' 'int pci_enable_ats(struct pci_dev*, int)' 'void pci_free_irq(struct pci_dev*, unsigned int, void*)' 'int pci_request_irq(struct pci_dev*, unsigned int, irq_handler_t, irq_handler_t, void*, const char*, ...)' 'int pci_request_regions(struct pci_dev*, const char*)' 'const char* pci_speed_string(enum pci_bus_speed)' 'void pci_stop_and_remove_bus_device(struct pci_dev*)' 'void pci_walk_bus(struct pci_bus*, int(*)(struct pci_dev*, void*), void*)' 'int pcie_capability_read_dword(struct pci_dev*, int, u32*)' 'int pcim_enable_device(struct pci_dev*)' 'int pcim_iomap_regions(struct pci_dev*, int, const char*)' 'void* const* pcim_iomap_table(struct pci_dev*)' 'void pcim_iounmap_regions(struct pci_dev*, int)' 'void percpu_down_write(struct percpu_rw_semaphore*)' 'void percpu_free_rwsem(struct percpu_rw_semaphore*)' 'void percpu_up_write(struct percpu_rw_semaphore*)' 'void* perf_aux_output_begin(struct perf_output_handle*, struct perf_event*)' 'void perf_aux_output_end(struct perf_output_handle*, unsigned long)' 'void perf_aux_output_flag(struct perf_output_handle*, u64)' 'void* perf_get_aux(struct perf_output_handle*)' 'int phy_pm_runtime_get_sync(struct phy*)' 'int phy_pm_runtime_put_sync(struct phy*)' 'int platform_msi_domain_alloc_irqs(struct device*, unsigned int, irq_write_msi_msg_t)' 'void platform_msi_domain_free_irqs(struct device*)' 'int pm_schedule_suspend(struct device*, unsigned int)' 'struct proc_dir_entry* proc_create_net_data(const char*, umode_t, struct proc_dir_entry*, const struct seq_operations*, unsigned int, void*)' 'struct proc_dir_entry* proc_create_net_single(const char*, umode_t, struct proc_dir_entry*, int(*)(struct seq_file*, void*), void*)' 'int proc_dointvec_jiffies(struct ctl_table*, int, void*, size_t*, loff_t*)' 'int proc_dointvec_minmax(struct ctl_table*, int, void*, size_t*, loff_t*)' 'int proc_doulongvec_minmax(struct ctl_table*, int, void*, size_t*, loff_t*)' 'void* pskb_put(struct sk_buff*, struct sk_buff*, int)' 'int put_cmsg(struct msghdr*, int, int, int, void*)' 'int radix_tree_maybe_preload(gfp_t)' 'int radix_tree_tagged(const struct xarray*, unsigned int)' 'int rcuwait_wake_up(struct rcuwait*)' 'bool refcount_dec_if_one(refcount_t*)' 'struct ctl_table_header* register_net_sysctl(struct net*, const char*, struct ctl_table*)' 'int regulator_map_voltage_linear_range(struct regulator_dev*, int, int)' 'struct iova* reserve_iova(struct iova_domain*, unsigned long, unsigned long)' 'int reset_controller_register(struct reset_controller_dev*)' 'void rhashtable_walk_enter(struct rhashtable*, struct rhashtable_iter*)' 'void rhashtable_walk_exit(struct rhashtable_iter*)' 'void* rhashtable_walk_next(struct rhashtable_iter*)' 'int rhashtable_walk_start_check(struct rhashtable_iter*)' 'void rhashtable_walk_stop(struct rhashtable_iter*)' 'void rpmsg_destroy_ept(struct rpmsg_endpoint*)' 'struct device* rpmsg_find_device(struct device*, struct rpmsg_channel_info*)' '__poll_t rpmsg_poll(struct rpmsg_endpoint*, struct file*, poll_table*)' 'int rpmsg_sendto(struct rpmsg_endpoint*, void*, int, u32)' 'void rproc_add_carveout(struct rproc*, struct rproc_mem_entry*)' 'int rproc_elf_load_rsc_table(struct rproc*, const struct firmware*)' 'int rproc_elf_load_segments(struct rproc*, const struct firmware*)' 'int rproc_elf_sanity_check(struct rproc*, const struct firmware*)' 'struct rproc_mem_entry* rproc_mem_entry_init(struct device*, void*, dma_addr_t, size_t, u32, int(*)(struct rproc*, struct rproc_mem_entry*), int(*)(struct rproc*, struct rproc_mem_entry*), const char*, ...)' 'struct rproc_mem_entry* rproc_of_resm_mem_entry_init(struct device*, u32, size_t, u32, const char*, ...)' 'irqreturn_t rproc_vq_interrupt(struct rproc*, int)' 'bool rps_may_expire_flow(struct net_device*, u16, u32, u16)' 'int rtnl_register_module(struct module*, int, int, rtnl_doit_func, rtnl_dumpit_func, unsigned int)' 'int rtnl_unregister(int, int)' 'void rtnl_unregister_all(int)' 'int sbitmap_init_node(struct sbitmap*, unsigned int, int, gfp_t, int, bool, bool)' 'void sched_clock_register(u64(*)(), int, unsigned long)' 'int scsi_add_host_with_dma(struct Scsi_Host*, struct device*, struct device*)' 'int scsi_change_queue_depth(struct scsi_device*, int)' 'int scsi_device_quiesce(struct scsi_device*)' 'int scsi_dma_map(struct scsi_cmnd*)' 'struct Scsi_Host* scsi_host_alloc(struct scsi_host_template*, int)' 'void scsi_host_put(struct Scsi_Host*)' 'int scsi_is_host_device(const struct device*)' 'void scsi_print_sense_hdr(const struct scsi_device*, const char*, const struct scsi_sense_hdr*)' 'int scsi_register_driver(struct device_driver*)' 'void scsi_remove_device(struct scsi_device*)' 'void scsi_remove_host(struct Scsi_Host*)' 'void scsi_report_bus_reset(struct Scsi_Host*, int)' 'void scsi_scan_host(struct Scsi_Host*)' 'void sdhci_adma_write_desc(struct sdhci_host*, void**, dma_addr_t, int, unsigned int)' 'int sdhci_runtime_resume_host(struct sdhci_host*, int)' 'int sdhci_runtime_suspend_host(struct sdhci_host*)' 'void sdhci_set_uhs_signaling(struct sdhci_host*, unsigned int)' 'void security_sk_classify_flow(struct sock*, struct flowi_common*)' 'void security_sk_clone(const struct sock*, struct sock*)' 'void security_sock_graft(struct sock*, struct socket*)' 'struct hlist_node* seq_hlist_next(void*, struct hlist_head*, loff_t*)' 'struct hlist_node* seq_hlist_start_head(struct hlist_head*, loff_t)' 'void serdev_device_close(struct serdev_device*)' 'int serdev_device_get_tiocm(struct serdev_device*)' 'int serdev_device_open(struct serdev_device*)' 'unsigned int serdev_device_set_baudrate(struct serdev_device*, unsigned int)' 'void serdev_device_set_flow_control(struct serdev_device*, bool)' 'int serdev_device_set_tiocm(struct serdev_device*, int, int)' 'void serdev_device_wait_until_sent(struct serdev_device*, long)' 'int serdev_device_write_buf(struct serdev_device*, const unsigned char*, size_t)' 'void serdev_device_write_flush(struct serdev_device*)' 'void setup_udp_tunnel_sock(struct net*, struct socket*, struct udp_tunnel_sock_cfg*)' 'size_t sg_copy_buffer(struct scatterlist*, unsigned int, void*, size_t, off_t, bool)' 'size_t sg_pcopy_from_buffer(struct scatterlist*, unsigned int, const void*, size_t, off_t)' 'size_t sg_pcopy_to_buffer(struct scatterlist*, unsigned int, void*, size_t, off_t)' 'size_t sg_zero_buffer(struct scatterlist*, unsigned int, size_t, off_t)' 'int simple_statfs(struct dentry*, struct kstatfs*)' 'void sk_common_release(struct sock*)' 'int sk_filter_trim_cap(struct sock*, struct sk_buff*, unsigned int)' 'void sk_reset_timer(struct sock*, struct timer_list*, unsigned long)' 'void sk_setup_caps(struct sock*, struct dst_entry*)' 'void sk_stop_timer(struct sock*, struct timer_list*)' 'int skb_cow_data(struct sk_buff*, int, struct sk_buff**)' 'void skb_dump(const char*, const struct sk_buff*, bool)' 'bool skb_try_coalesce(struct sk_buff*, struct sk_buff*, bool*, int*)' 'void skb_unlink(struct sk_buff*, struct sk_buff_head*)' 'int smp_call_function_single_async(int, struct __call_single_data*)' 'struct snd_card* snd_card_ref(int)' 'int snd_soc_dapm_new_widgets(struct snd_soc_card*)' 'struct snd_soc_component* snd_soc_rtdcom_lookup(struct snd_soc_pcm_runtime*, const char*)' 'int sock_common_getsockopt(struct socket*, int, int, char*, int*)' 'int sock_common_recvmsg(struct socket*, struct msghdr*, size_t, int)' 'int sock_common_setsockopt(struct socket*, int, int, sockptr_t, unsigned int)' 'int sock_diag_register(const struct sock_diag_handler*)' 'void sock_diag_save_cookie(struct sock*, __u32*)' 'void sock_diag_unregister(const struct sock_diag_handler*)' 'unsigned long sock_i_ino(struct sock*)' 'kuid_t sock_i_uid(struct sock*)' 'int sock_no_bind(struct socket*, struct sockaddr*, int)' 'int sock_no_connect(struct socket*, struct sockaddr*, int, int)' 'int sock_no_getname(struct socket*, struct sockaddr*, int)' 'int sock_no_ioctl(struct socket*, unsigned int, unsigned long)' 'int sock_no_recvmsg(struct socket*, struct msghdr*, size_t, int)' 'int sock_no_sendmsg(struct socket*, struct msghdr*, size_t)' 'void sock_prot_inuse_add(struct net*, struct proto*, int)' 'int sock_recv_errqueue(struct sock*, struct msghdr*, int, int, int)' 'void sock_rfree(struct sk_buff*)' 'struct sk_buff* sock_wmalloc(struct sock*, unsigned long, int, gfp_t)' 'void synchronize_srcu(struct srcu_struct*)' 'int sysfs_add_link_to_group(struct kobject*, const char*, struct kobject*, const char*)' 'int sysfs_create_mount_point(struct kobject*, const char*)' 'void sysfs_remove_link_from_group(struct kobject*, const char*, const char*)' 'void sysfs_remove_mount_point(struct kobject*, const char*)' 'int timer_reduce(struct timer_list*, unsigned long)' 'int trace_set_clr_event(const char*, const char*, int)' 'void tty_driver_flush_buffer(struct tty_struct*)' 'void tty_driver_kref_put(struct tty_driver*)' 'void tty_encode_baud_rate(struct tty_struct*, speed_t, speed_t)' 'unsigned char tty_get_char_size(unsigned int)' 'void tty_ldisc_deref(struct tty_ldisc*)' 'void tty_ldisc_flush(struct tty_struct*)' 'struct tty_ldisc* tty_ldisc_ref(struct tty_struct*)' 'void tty_port_close(struct tty_port*, struct tty_struct*, struct file*)' 'void tty_port_destroy(struct tty_port*)' 'void tty_port_hangup(struct tty_port*)' 'void tty_port_init(struct tty_port*)' 'int tty_port_install(struct tty_port*, struct tty_driver*, struct tty_struct*)' 'int tty_port_open(struct tty_port*, struct tty_struct*, struct file*)' 'void tty_port_put(struct tty_port*)' 'struct device* tty_port_register_device(struct tty_port*, struct tty_driver*, unsigned int, struct device*)' 'void tty_port_tty_hangup(struct tty_port*, bool)' 'void tty_port_tty_wakeup(struct tty_port*)' 'int tty_register_driver(struct tty_driver*)' 'int tty_set_termios(struct tty_struct*, struct ktermios*)' 'int tty_standard_install(struct tty_driver*, struct tty_struct*)' 'void tty_termios_copy_hw(struct ktermios*, struct ktermios*)' 'void tty_unregister_device(struct tty_driver*, unsigned int)' 'void tty_unregister_driver(struct tty_driver*)' 'void tty_unthrottle(struct tty_struct*)' 'void tty_vhangup(struct tty_struct*)' 'void tty_wakeup(struct tty_struct*)' 'void udp6_set_csum(bool, struct sk_buff*, const struct in6_addr*, const struct in6_addr*, int)' 'void udp_set_csum(bool, struct sk_buff*, __be32, __be32, int)' 'int udp_sock_create4(struct net*, struct udp_port_cfg*, struct socket**)' 'int udp_sock_create6(struct net*, struct udp_port_cfg*, struct socket**)' 'int udp_tunnel6_xmit_skb(struct dst_entry*, struct sock*, struct sk_buff*, struct net_device*, struct in6_addr*, struct in6_addr*, __u8, __u8, __be32, __be16, __be16, bool)' 'void udp_tunnel_sock_release(struct socket*)' 'void udp_tunnel_xmit_skb(struct rtable*, struct sock*, struct sk_buff*, __be32, __be32, __u8, __u8, __be16, __be16, __be16, bool, bool)' 'void unregister_net_sysctl_table(struct ctl_table_header*)' 'int usb_add_gadget(struct usb_gadget*)' 'int usb_autopm_get_interface_async(struct usb_interface*)' 'void usb_autopm_get_interface_no_resume(struct usb_interface*)' 'void usb_autopm_put_interface_async(struct usb_interface*)' 'int usb_clear_halt(struct usb_device*, int)' 'const char* usb_decode_ctrl(char*, size_t, __u8, __u8, __u16, __u16, __u16)' 'void usb_del_gadget(struct usb_gadget*)' 'int usb_ep_dequeue(struct usb_ep*, struct usb_request*)' 'int usb_ep_set_halt(struct usb_ep*)' 'int usb_find_common_endpoints(struct usb_host_interface*, struct usb_endpoint_descriptor**, struct usb_endpoint_descriptor**, struct usb_endpoint_descriptor**, struct usb_endpoint_descriptor**)' 'int usb_gadget_map_request_by_dev(struct device*, struct usb_request*, int)' 'void usb_gadget_unmap_request_by_dev(struct device*, struct usb_request*, int)' 'int usb_get_descriptor(struct usb_device*, unsigned char, unsigned char, void*, int)' 'enum usb_dr_mode usb_get_dr_mode(struct device*)' 'struct usb_interface* usb_get_intf(struct usb_interface*)' 'enum usb_device_speed usb_get_maximum_speed(struct device*)' 'enum usb_ssp_rate usb_get_maximum_ssp_rate(struct device*)' 'enum usb_dr_mode usb_get_role_switch_default_mode(struct device*)' 'int usb_get_status(struct usb_device*, int, int, int, void*)' 'void usb_hcd_end_port_resume(struct usb_bus*, int)' 'int usb_hcd_map_urb_for_dma(struct usb_hcd*, struct urb*, gfp_t)' 'void usb_hcd_start_port_resume(struct usb_bus*, int)' 'void usb_hcd_unmap_urb_for_dma(struct usb_hcd*, struct urb*)' 'int usb_hub_clear_tt_buffer(struct urb*)' 'void usb_initialize_gadget(struct device*, struct usb_gadget*, void(*)(struct device*))' 'int usb_match_one_id(struct usb_interface*, const struct usb_device_id*)' 'void usb_phy_set_charger_current(struct usb_phy*, unsigned int)' 'void usb_put_intf(struct usb_interface*)' 'void usb_sg_cancel(struct usb_sg_request*)' 'int usb_sg_init(struct usb_sg_request*, struct usb_device*, unsigned int, unsigned int, struct scatterlist*, int, size_t, gfp_t)' 'void usb_sg_wait(struct usb_sg_request*)' 'ssize_t usb_show_dynids(struct usb_dynids*, char*)' 'ssize_t usb_store_new_id(struct usb_dynids*, const struct usb_device_id*, struct device_driver*, const char*, size_t)' 'int usb_unlink_urb(struct urb*)' 'void usb_wakeup_notification(struct usb_device*, unsigned int)' 'int uuid_parse(const char*, uuid_t*)' 'int v4l2_fh_release(struct file*)' 'void v4l2_subdev_init(struct v4l2_subdev*, const struct v4l2_subdev_ops*)' 'const struct vring* virtqueue_get_vring(struct virtqueue*)' 'u16 vlan_dev_vlan_id(const struct net_device*)' 'void vlan_filter_drop_vids(struct vlan_info*, __be16)' 'int vlan_filter_push_vids(struct vlan_info*, __be16)' 'void vlan_ioctl_set(int(*)(struct net*, void*))' 'void xhci_dbg_trace(struct xhci_hcd*, void(*)(struct va_format*), const char*, ...)' 'void xhci_ring_free(struct xhci_hcd*, struct xhci_ring*)' 'dma_addr_t xhci_trb_virt_to_dma(struct xhci_segment*, union xhci_trb*)' 'int zlib_deflate(z_streamp, int)' 'int zlib_deflateEnd(z_streamp)' 'int zlib_deflateInit2(z_streamp, int, int, int, int, int)' 'int zlib_deflateReset(z_streamp)' 'int zlib_deflate_workspacesize(int, int)' 'int zlib_inflate(z_streamp, int)' 'int zlib_inflateIncomp(z_stream*)' 'int zlib_inflateInit2(z_streamp, int)' 'int zlib_inflateReset(z_streamp)' 'int zlib_inflate_workspacesize()' 18 variable symbol(s) added 'struct tracepoint __tracepoint_android_rvh_iommu_setup_dma_ops' 'struct tracepoint __tracepoint_android_vh_mpam_set' 'struct tracepoint __tracepoint_android_vh_set_memory_nx' 'struct tracepoint __tracepoint_android_vh_set_module_permit_after_init' 'struct tracepoint __tracepoint_wbc_writepage' 'struct crypto_rng* crypto_default_rng' 'struct flow_dissector flow_keys_dissector' 'struct kobject* fs_kobj' 'const struct in6_addr in6addr_any' 'struct user_namespace init_user_ns' 'const struct ipv6_stub* ipv6_stub' 'kimage_vaddr' 'struct neigh_table nd_tbl' 'const unsigned char pcie_link_speed[16]' 'const struct inode_operations simple_dir_inode_operations' 'const struct file_operations simple_dir_operations' 'const int sysctl_vals[10]' 'struct ktermios tty_std_termios' Bug: 280016748 Change-Id: I27e0473b25d483b81fad327e37d5bad812647ee7 Signed-off-by: zhangao <zhangao@zeku.com> |
||
|
|
0f8ada230c |
Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-5.15.y' into android14-5.15
* aosp/upstream-f2fs-stable-linux-5.15.y: fscrypt: destroy keyring after security_sb_delete() fscrypt: optimize fscrypt_initialize() fscrypt: use WARN_ON_ONCE instead of WARN_ON fscrypt: new helper function - fscrypt_prepare_lookup_partial() fscrypt: check for NULL keyring in fscrypt_put_master_key_activeref() fscrypt: improve fscrypt_destroy_keyring() documentation Bug: 273795759 Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Change-Id: Iae53ebbdc231a66146ed39c2d83622233386a526 |
||
|
|
1971e2a1a6 |
ANDROID: GKI: Increase max 8250 uarts
Some boards need more than the default maximum of 4 uarts. This has no impact unless 8250.nr_uarts is specified on the cmdline to increase the number of runtime uarts from the GKI default of 0. Bug: 280015873 Signed-off-by: Alistair Delva <adelva@google.com> Change-Id: I5ba4e1dcce4f4e01b7d306fa3ab05319768eef00 |