Commit Graph

1149273 Commits

Author SHA1 Message Date
Matthias Maennich
e501d8cd96 ANDROID: Update ABI representation broken by update race
A collision between aosp/2569890 (symbol list update) and aosp/2582310
(KMI update) caused this fall out. Fix forward by updating the
representation accordingly.

Bug: 281981998
Change-Id: I312fa0662e8289e4cd0ecd0fcf40f1d4aae612a1
Signed-off-by: Matthias Maennich <maennich@google.com>
2023-05-11 14:56:48 +01:00
wang qiankun
6d58e531fa ANDROID: GKI: update the ABI symbol list
INFO: ABI DIFFERENCES HAVE BEEN DETECTED!
INFO: 4 function symbol(s) added
  'int __traceiter_android_rvh_cpuset_fork(void*, struct task_struct*, bool*)'
  'int __traceiter_android_rvh_set_cpus_allowed_comm(void*, struct task_struct*, const struct cpumask*)'
  'int __traceiter_android_vh_sched_setaffinity_early(void*, struct task_struct*, const struct cpumask*, bool*)'
  'void cpuset_cpus_allowed(struct task_struct*, struct cpumask*)'

3 variable symbol(s) added
  'struct tracepoint __tracepoint_android_rvh_cpuset_fork'
  'struct tracepoint __tracepoint_android_rvh_set_cpus_allowed_comm'
  'struct tracepoint __tracepoint_android_vh_sched_setaffinity_early'

Bug: 277846574

Change-Id: Idf2d244cce15fcf86953974942e291e2fc5bd243
Signed-off-by: wang qiankun <wangqiankun3@xiaomi.corp-partner.google.com>
2023-05-11 13:10:00 +00:00
lijianzhong
8947e06ff7 ANDROID: cgroup: Add vendor hook for cpuset.
This hook allows us to capture information when a process is forked so
that we can stat and set some key task's CPU affinity in the ko module
later. This patch, along with aosp/2548175, is necessary for our
affinity settings.

Bug: 183674818
Signed-off-by: lijianzhong <lijianzhong@xiaomi.com>
Change-Id: Ib93e05e5f6c338c5f7ada56bfebdd705f87f1f66
(cherry picked from commit a188361628461c58a4dfc72869d9acb1dfa2542f)
2023-05-11 13:10:00 +00:00
lijianzhong
2e85c6c0fa ANDROID: export cpuset_cpus_allowed()for GKI purpose.
Exporting the symbol cpuset_cpus_allowed() so that we can adjust a
certain type of application's CPU affinity in vendor hooks according
to our tuning policy.
Related commit: aosp/2548175

Bug: 189725786

Signed-off-by: lijianzhong <lijianzhong@xiaomi.com>
Change-Id: I7919a893ab64bb441ab43cbb0b16825ed76d802d
(cherry picked from commit 5a7d01ed73e4fc812fda1d7288086dc73a283405)
2023-05-11 13:10:00 +00:00
lijianzhong
8979a0b16a ANDROID: sched: Add vendor hooks for cpu affinity.
Add vendor hooks for CPU affinity to support OEM's tuning policy, where
we can block or unblock a certain type of application's CPU affinity.

Bug: 183674818

Signed-off-by: lijianzhong <lijianzhong@xiaomi.com>
Change-Id: I3402abec4d9faa08f564409bfb8db8d7902f3aa2
(cherry picked from commit 7cf9646c245fdc63e2a3c9fad457c11fabdd2dfc)
2023-05-11 13:10:00 +00:00
Ramji Jiyani
cb3efba1de 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>
2023-05-11 12:26:58 +00:00
Wesley Cheng
59c5afdb44 ANDROID: abi_gki_aarch64_qcom: Add USB SND power domain symbol
Add snd_usb_power_domain_set() to the symbol list, as it is exported for
modules to utilize.  Class drivers may need this to ensure USB audio device
is placed in the proper power state if an alternative audio path is used.
(i.e. offload path)

Symbols added:
  snd_usb_power_domain_set

Bug: 255912822
Change-Id: I667fcaf8c841fd63c9b4d0307ac86e178d15e8b8
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
2023-05-11 12:25:31 +00:00
Udipto Goswami
de71877f29 FROMGIT: usb: xhci: Remove unused udev from xhci_log_ctx trace event
xhci_log_ctx event is not utilizing the extracted udev to
print out anything, hence removing it.

Fixes: 1d27fabec0 ("xhci: add xhci_address_ctx trace event")
Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>

Bug: 278637066
(cherry picked from commit acd4b4af99d70451293a8d43585619337b4ac70d https://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git for-usb-next)
Change-Id: I359a050ff411ede5bc2c3ba1d1d68550773fa0a6
Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
2023-05-11 06:00:07 +00:00
Carlos Llamas
e74e6e2227 ANDROID: 5/10/2023 KMI update
Set KMI_GENERATION=6 for 5/10 KMI update

265 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_radar_event(struct wiphy*, struct cfg80211_chan_def*, bool, gfp_t)'
  'void __cfg80211_send_event_skb(struct sk_buff*, gfp_t)'
  'void __ieee80211_schedule_txq(struct ieee80211_hw*, struct ieee80211_txq*, bool)'
  'bool cfg80211_any_usable_channels(struct wiphy*, unsigned long, u32)'
  'void cfg80211_assoc_comeback(struct net_device*, const u8*, u32)'
  'void cfg80211_assoc_failure(struct net_device*, struct cfg80211_assoc_failure*)'
  'void cfg80211_auth_timeout(struct net_device*, const u8*)'
  'void cfg80211_background_cac_abort(struct wiphy*)'
  'int cfg80211_bss_color_notify(struct net_device*, gfp_t, enum nl80211_commands, u8, u64)'
  'void cfg80211_bss_flush(struct wiphy*)'
  'void cfg80211_bss_iter(struct wiphy*, struct cfg80211_chan_def*, void(*)(struct wiphy*, struct cfg80211_bss*, void*), void*)'
  'void cfg80211_cac_event(struct net_device*, const struct cfg80211_chan_def*, enum nl80211_radar_event, gfp_t)'
  'u32 cfg80211_calculate_bitrate(struct rate_info*)'
  'void cfg80211_ch_switch_notify(struct net_device*, struct cfg80211_chan_def*, unsigned int, u16)'
  'void cfg80211_ch_switch_started_notify(struct net_device*, struct cfg80211_chan_def*, unsigned int, u8, bool, u16)'
  'const struct cfg80211_chan_def* cfg80211_chandef_compatible(const struct cfg80211_chan_def*, const struct cfg80211_chan_def*)'
  'void cfg80211_chandef_create(struct cfg80211_chan_def*, struct ieee80211_channel*, enum nl80211_channel_type)'
  'int cfg80211_chandef_dfs_required(struct wiphy*, const struct cfg80211_chan_def*, enum nl80211_iftype)'
  'bool cfg80211_chandef_usable(struct wiphy*, const struct cfg80211_chan_def*, u32)'
  'bool cfg80211_chandef_valid(const struct cfg80211_chan_def*)'
  'int cfg80211_check_combinations(struct wiphy*, struct iface_combination_params*)'
  'int cfg80211_check_station_change(struct wiphy*, struct station_parameters*, enum cfg80211_station_type)'
  'unsigned int cfg80211_classify8021d(struct sk_buff*, struct cfg80211_qos_map*)'
  'void cfg80211_conn_failed(struct net_device*, const u8*, enum nl80211_connect_failed_reason, gfp_t)'
  'void cfg80211_connect_done(struct net_device*, struct cfg80211_connect_resp_params*, gfp_t)'
  'void cfg80211_control_port_tx_status(struct wireless_dev*, u64, const u8*, size_t, bool, gfp_t)'
  'void cfg80211_cqm_beacon_loss_notify(struct net_device*, gfp_t)'
  'void cfg80211_cqm_pktloss_notify(struct net_device*, const u8*, u32, gfp_t)'
  'void cfg80211_cqm_rssi_notify(struct net_device*, enum nl80211_cqm_rssi_threshold_event, s32, gfp_t)'
  'void cfg80211_cqm_txe_notify(struct net_device*, const u8*, u32, u32, u32, gfp_t)'
  'void cfg80211_crit_proto_stopped(struct wireless_dev*, 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_free_nan_func(struct cfg80211_nan_func*)'
  '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_get_drvinfo(struct net_device*, struct ethtool_drvinfo*)'
  'int cfg80211_get_ies_channel_number(const u8*, size_t, enum nl80211_band, enum cfg80211_bss_frame_type)'
  'const struct wiphy_iftype_ext_capab* cfg80211_get_iftype_ext_capa(struct wiphy*, enum nl80211_iftype)'
  'int cfg80211_get_p2p_attr(const u8*, unsigned int, enum ieee80211_p2p_attr_id, u8*, unsigned int)'
  'int cfg80211_get_station(struct net_device*, const u8*, struct station_info*)'
  '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)'
  'bool cfg80211_iftype_allowed(struct wiphy*, enum nl80211_iftype, bool, u8)'
  '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)'
  'bool cfg80211_is_element_inherited(const struct element*, const struct element*)'
  'int cfg80211_iter_combinations(struct wiphy*, struct iface_combination_params*, void(*)(const struct ieee80211_iface_combination*, void*), void*)'
  'size_t cfg80211_merge_profile(const u8*, size_t, const struct element*, const struct element*, u8*, size_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_nan_func_terminated(struct wireless_dev*, u8, enum nl80211_nan_func_term_reason, u64, gfp_t)'
  'void cfg80211_nan_match(struct wireless_dev*, struct cfg80211_nan_match_params*, gfp_t)'
  'void cfg80211_new_sta(struct net_device*, const u8*, struct station_info*, gfp_t)'
  'void cfg80211_notify_new_peer_candidate(struct net_device*, const u8*, const u8*, u8, int, gfp_t)'
  'void cfg80211_pmksa_candidate_notify(struct net_device*, int, const u8*, bool, gfp_t)'
  'void cfg80211_pmsr_complete(struct wireless_dev*, struct cfg80211_pmsr_request*, gfp_t)'
  'void cfg80211_pmsr_report(struct wireless_dev*, struct cfg80211_pmsr_request*, struct cfg80211_pmsr_result*, gfp_t)'
  'void cfg80211_port_authorized(struct net_device*, const u8*, const u8*, u8, gfp_t)'
  'void cfg80211_probe_status(struct net_device*, const u8*, u64, bool, s32, bool, 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)'
  'void cfg80211_ref_bss(struct wiphy*, struct cfg80211_bss*)'
  'bool cfg80211_reg_can_beacon(struct wiphy*, struct cfg80211_chan_def*, enum nl80211_iftype)'
  'bool cfg80211_reg_can_beacon_relax(struct wiphy*, struct cfg80211_chan_def*, enum nl80211_iftype)'
  'int cfg80211_register_netdevice(struct net_device*)'
  'void cfg80211_remain_on_channel_expired(struct wireless_dev*, u64, struct ieee80211_channel*, gfp_t)'
  'void cfg80211_report_obss_beacon_khz(struct wiphy*, const u8*, size_t, int, int)'
  'void cfg80211_report_wowlan_wakeup(struct wireless_dev*, struct cfg80211_wowlan_wakeup*, gfp_t)'
  'void cfg80211_roamed(struct net_device*, struct cfg80211_roam_info*, gfp_t)'
  'void cfg80211_rx_assoc_resp(struct net_device*, struct cfg80211_rx_assoc_resp*)'
  'bool cfg80211_rx_control_port(struct net_device*, struct sk_buff*, bool, int)'
  'bool cfg80211_rx_mgmt_ext(struct wireless_dev*, struct cfg80211_rx_info*)'
  'void cfg80211_rx_mlme_mgmt(struct net_device*, const u8*, size_t)'
  'bool cfg80211_rx_spurious_frame(struct net_device*, const u8*, gfp_t)'
  'bool cfg80211_rx_unexpected_4addr_frame(struct net_device*, const u8*, gfp_t)'
  '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(struct wiphy*, u64)'
  'void cfg80211_sched_scan_stopped_locked(struct wiphy*, u64)'
  'void cfg80211_send_layer2_update(struct net_device*, const u8*)'
  'void cfg80211_shutdown_all_interfaces(struct wiphy*)'
  'int cfg80211_sinfo_alloc_tid_stats(struct station_info*, gfp_t)'
  'void cfg80211_sta_opmode_change_notify(struct net_device*, const u8*, struct sta_opmode_info*, gfp_t)'
  'void cfg80211_stop_iface(struct wiphy*, struct wireless_dev*, gfp_t)'
  'void cfg80211_tdls_oper_request(struct net_device*, const u8*, enum nl80211_tdls_operation, u16, gfp_t)'
  'void cfg80211_tx_mgmt_expired(struct wireless_dev*, u64, struct ieee80211_channel*, gfp_t)'
  'void cfg80211_tx_mlme_mgmt(struct net_device*, const u8*, size_t, bool)'
  '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)'
  'unsigned int cfg80211_vendor_cmd_get_sender(struct wiphy*)'
  'int cfg80211_vendor_cmd_reply(struct sk_buff*)'
  'const struct ieee80211_reg_rule* freq_reg_info(struct wiphy*, u32)'
  'const struct ieee80211_regdomain* get_wiphy_regdom(struct wiphy*)'
  'struct ieee80211_hw* ieee80211_alloc_hw_nm(size_t, const struct ieee80211_ops*, const char*)'
  'void ieee80211_amsdu_to_8023s(struct sk_buff*, struct sk_buff_head*, const u8*, enum nl80211_iftype, unsigned int, const u8*, const u8*)'
  'struct sk_buff* ieee80211_ap_probereq_get(struct ieee80211_hw*, struct ieee80211_vif*)'
  'int ieee80211_ave_rssi(struct ieee80211_vif*)'
  '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*, unsigned int)'
  'struct sk_buff* ieee80211_beacon_get_tim(struct ieee80211_hw*, struct ieee80211_vif*, u16*, u16*, unsigned int)'
  'void ieee80211_beacon_loss(struct ieee80211_vif*)'
  'void ieee80211_beacon_set_cntdwn(struct ieee80211_vif*, u8)'
  '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)'
  'bool ieee80211_chandef_to_operating_class(struct cfg80211_chan_def*, u8*)'
  'void ieee80211_channel_switch_disconnect(struct ieee80211_vif*, bool)'
  'u32 ieee80211_channel_to_freq_khz(int, enum nl80211_band)'
  'void ieee80211_chswitch_done(struct ieee80211_vif*, bool)'
  'void ieee80211_color_change_finish(struct ieee80211_vif*)'
  'void ieee80211_connection_loss(struct ieee80211_vif*)'
  'void ieee80211_cqm_beacon_loss_notify(struct ieee80211_vif*, gfp_t)'
  'void ieee80211_cqm_rssi_notify(struct ieee80211_vif*, enum nl80211_cqm_rssi_threshold_event, s32, gfp_t)'
  'void ieee80211_csa_finish(struct ieee80211_vif*)'
  '__le16 ieee80211_ctstoself_duration(struct ieee80211_hw*, struct ieee80211_vif*, size_t, const struct ieee80211_tx_info*)'
  'void ieee80211_ctstoself_get(struct ieee80211_hw*, struct ieee80211_vif*, const void*, size_t, const struct ieee80211_tx_info*, struct ieee80211_cts*)'
  'int ieee80211_data_to_8023_exthdr(struct sk_buff*, struct ethhdr*, const u8*, enum nl80211_iftype, u8, bool)'
  'void ieee80211_disable_rssi_reports(struct ieee80211_vif*)'
  'void ieee80211_disconnect(struct ieee80211_vif*, bool)'
  'void ieee80211_enable_rssi_reports(struct ieee80211_vif*, int, int)'
  '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*)'
  'struct ieee80211_sta* ieee80211_find_sta_by_link_addrs(struct ieee80211_hw*, const u8*, const u8*, unsigned int*)'
  'void ieee80211_free_hw(struct ieee80211_hw*)'
  'void ieee80211_free_txskb(struct ieee80211_hw*, struct sk_buff*)'
  'int ieee80211_freq_khz_to_channel(u32)'
  '__le16 ieee80211_generic_frame_duration(struct ieee80211_hw*, struct ieee80211_vif*, enum nl80211_band, size_t, struct ieee80211_rate*)'
  'u8* ieee80211_get_bssid(struct ieee80211_hdr*, size_t, enum nl80211_iftype)'
  '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*)'
  'unsigned int ieee80211_get_mesh_hdrlen(struct ieee80211s_hdr*)'
  'unsigned int ieee80211_get_num_supported_channels(struct wiphy*)'
  'const struct ieee80211_rate* ieee80211_get_response_rate(struct ieee80211_supported_band*, u32, int)'
  'void ieee80211_get_tkip_p1k_iv(struct ieee80211_key_conf*, u32, u16*)'
  'void ieee80211_get_tkip_p2k(struct ieee80211_key_conf*, struct sk_buff*, u8*)'
  'void ieee80211_get_tkip_rx_p1k(struct ieee80211_key_conf*, const u8*, u32, u16*)'
  '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*)'
  'int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap*, enum ieee80211_vht_chanwidth, int, bool, unsigned int)'
  'struct ieee80211_key_conf* ieee80211_gtk_rekey_add(struct ieee80211_vif*, struct ieee80211_key_conf*)'
  'void ieee80211_gtk_rekey_notify(struct ieee80211_vif*, const u8*, const u8*, gfp_t)'
  'unsigned int ieee80211_hdrlen(__le16)'
  'void ieee80211_hw_restart_disconnect(struct ieee80211_vif*)'
  'size_t ieee80211_ie_split_ric(const u8*, size_t, const u8*, int, const u8*, int, size_t)'
  'void ieee80211_iter_chan_contexts_atomic(struct ieee80211_hw*, void(*)(struct ieee80211_hw*, struct ieee80211_chanctx_conf*, void*), void*)'
  'void ieee80211_iter_keys(struct ieee80211_hw*, struct ieee80211_vif*, void(*)(struct ieee80211_hw*, struct ieee80211_vif*, struct ieee80211_sta*, struct ieee80211_key_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_active_interfaces_mtx(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(struct ieee80211_hw*, void(*)(void*, struct ieee80211_sta*), void*)'
  'void ieee80211_iterate_stations_atomic(struct ieee80211_hw*, void(*)(void*, struct ieee80211_sta*), void*)'
  'void ieee80211_key_mic_failure(struct ieee80211_key_conf*)'
  'void ieee80211_key_replay(struct ieee80211_key_conf*)'
  'void ieee80211_manage_rx_ba_offl(struct ieee80211_vif*, const u8*, unsigned int)'
  'u32 ieee80211_mandatory_rates(struct ieee80211_supported_band*, enum nl80211_bss_scan_width)'
  'void ieee80211_mark_rx_ba_filtered_frames(struct ieee80211_sta*, u8, u16, u64, u16)'
  'void ieee80211_nan_func_match(struct ieee80211_vif*, struct cfg80211_nan_match_params*, gfp_t)'
  'void ieee80211_nan_func_terminated(struct ieee80211_vif*, u8, enum nl80211_nan_func_term_reason, gfp_t)'
  'struct ieee80211_txq* ieee80211_next_txq(struct ieee80211_hw*, u8)'
  'struct sk_buff* ieee80211_nullfunc_get(struct ieee80211_hw*, struct ieee80211_vif*, int, bool)'
  'bool ieee80211_operating_class_to_band(u8, enum nl80211_band*)'
  'int ieee80211_parse_p2p_noa(const struct ieee80211_p2p_noa_attr*, struct ieee80211_noa_data*, u32)'
  '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*)'
  'struct sk_buff* ieee80211_pspoll_get(struct ieee80211_hw*, struct ieee80211_vif*)'
  'void ieee80211_queue_delayed_work(struct ieee80211_hw*, struct delayed_work*, unsigned long)'
  'int ieee80211_queue_stopped(struct ieee80211_hw*, int)'
  'void ieee80211_queue_work(struct ieee80211_hw*, struct work_struct*)'
  'void ieee80211_radar_detected(struct ieee80211_hw*)'
  'int ieee80211_radiotap_iterator_init(struct ieee80211_radiotap_iterator*, struct ieee80211_radiotap_header*, int, const struct ieee80211_radiotap_vendor_namespaces*)'
  'int ieee80211_radiotap_iterator_next(struct ieee80211_radiotap_iterator*)'
  'int ieee80211_rate_control_register(const struct rate_control_ops*)'
  'void ieee80211_rate_control_unregister(const struct rate_control_ops*)'
  '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_remove_key(struct ieee80211_key_conf*)'
  'void ieee80211_report_low_ack(struct ieee80211_sta*, u32)'
  'void ieee80211_report_wowlan_wakeup(struct ieee80211_vif*, struct cfg80211_wowlan_wakeup*, gfp_t)'
  'void ieee80211_request_smps(struct ieee80211_vif*, unsigned int, enum ieee80211_smps_mode)'
  'int ieee80211_reserve_tid(struct ieee80211_sta*, u8)'
  'void ieee80211_restart_hw(struct ieee80211_hw*)'
  'void ieee80211_resume_disconnect(struct ieee80211_vif*)'
  '__le16 ieee80211_rts_duration(struct ieee80211_hw*, struct ieee80211_vif*, size_t, const struct ieee80211_tx_info*)'
  'void ieee80211_rts_get(struct ieee80211_hw*, struct ieee80211_vif*, const void*, size_t, const struct ieee80211_tx_info*, struct ieee80211_rts*)'
  'void ieee80211_rx_ba_timer_expired(struct ieee80211_vif*, const u8*, unsigned int)'
  '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*)'
  'enum nl80211_chan_width ieee80211_s1g_channel_width(const struct ieee80211_channel*)'
  'void ieee80211_scan_completed(struct ieee80211_hw*, struct cfg80211_scan_info*)'
  'void ieee80211_sched_scan_results(struct ieee80211_hw*)'
  'void ieee80211_sched_scan_stopped(struct ieee80211_hw*)'
  'void ieee80211_send_bar(struct ieee80211_vif*, u8*, u16, u16)'
  'void ieee80211_send_eosp_nullfunc(struct ieee80211_sta*, int)'
  'int ieee80211_set_active_links(struct ieee80211_vif*, u16)'
  'void ieee80211_set_active_links_async(struct ieee80211_vif*, u16)'
  'void ieee80211_set_key_rx_seq(struct ieee80211_key_conf*, int, struct ieee80211_key_seq*)'
  'void ieee80211_sta_block_awake(struct ieee80211_hw*, struct ieee80211_sta*, bool)'
  '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_recalc_aggregates(struct ieee80211_sta*)'
  'void ieee80211_sta_register_airtime(struct ieee80211_sta*, u8, u32, u32)'
  'void ieee80211_sta_set_buffered(struct ieee80211_sta*, u8, bool)'
  'void ieee80211_sta_uapsd_trigger(struct ieee80211_sta*, u8)'
  'void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif*, const u8*, u16)'
  'int ieee80211_start_tx_ba_session(struct ieee80211_sta*, u16, u16)'
  'void ieee80211_stop_queue(struct ieee80211_hw*, int)'
  'void ieee80211_stop_queues(struct ieee80211_hw*)'
  'void ieee80211_stop_rx_ba_session(struct ieee80211_vif*, u16, const u8*)'
  'void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif*, const u8*, u16)'
  'int ieee80211_stop_tx_ba_session(struct ieee80211_sta*, u16)'
  'void ieee80211_tdls_oper_request(struct ieee80211_vif*, const u8*, enum nl80211_tdls_operation, u16, gfp_t)'
  'u8* ieee80211_tkip_add_iv(u8*, struct ieee80211_key_conf*, u64)'
  '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_8023(struct ieee80211_hw*, struct ieee80211_vif*, 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*)'
  'bool ieee80211_txq_airtime_check(struct ieee80211_hw*, struct ieee80211_txq*)'
  '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_unreserve_tid(struct ieee80211_sta*, u8)'
  'void ieee80211_update_mu_groups(struct ieee80211_vif*, unsigned int, const u8*, const u8*)'
  'void ieee80211_update_p2p_noa(struct ieee80211_noa_data*, u32)'
  'struct wireless_dev* ieee80211_vif_to_wdev(struct ieee80211_vif*)'
  'void ieee80211_wake_queue(struct ieee80211_hw*, int)'
  'void ieee80211_wake_queues(struct ieee80211_hw*)'
  'void ieeee80211_obss_color_collision_notify(struct ieee80211_vif*, u64, gfp_t)'
  'int rate_control_set_rates(struct ieee80211_hw*, struct ieee80211_sta*, struct ieee80211_sta_rates*)'
  'const char* reg_initiator_name(enum nl80211_reg_initiator)'
  'int reg_query_regdb_wmm(char*, int, struct ieee80211_reg_rule*)'
  'int regulatory_hint(struct wiphy*, const char*)'
  'bool regulatory_pre_cac_allowed(struct wiphy*)'
  'int regulatory_set_wiphy_regd(struct wiphy*, struct ieee80211_regdomain*)'
  'int regulatory_set_wiphy_regd_sync(struct wiphy*, struct ieee80211_regdomain*)'
  'struct cfg80211_chan_def* wdev_chandef(struct wireless_dev*, unsigned int)'
  'struct ieee80211_vif* wdev_to_ieee80211_vif(struct wireless_dev*)'
  '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)'
  'void wiphy_rfkill_start_polling(struct wiphy*)'
  'struct ieee80211_hw* wiphy_to_ieee80211_hw(struct wiphy*)'
  'void wiphy_unregister(struct wiphy*)'

2 variable symbol(s) removed
  'const unsigned char bridge_tunnel_header[6]'
  'const unsigned char rfc1042_header[6]'

14 function symbol(s) added
  'int __traceiter_android_vh_alloc_uid(void*, struct user_struct*)'
  'int __traceiter_android_vh_do_futex(void*, int, unsigned int*, u32*)'
  'int __traceiter_android_vh_free_user(void*, struct user_struct*)'
  'int __traceiter_android_vh_freq_qos_add_request(void*, struct freq_constraints*, struct freq_qos_request*, enum freq_qos_req_type, int, int)'
  'int __traceiter_android_vh_freq_qos_remove_request(void*, struct freq_qos_request*)'
  'int __traceiter_android_vh_freq_qos_update_request(void*, struct freq_qos_request*, int)'
  'int __traceiter_android_vh_futex_sleep_start(void*, struct task_struct*)'
  '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)'
  'struct user_struct* find_user(kuid_t)'
  'void free_uid(struct user_struct*)'

12 variable symbol(s) added
  'struct tracepoint __tracepoint_android_vh_alloc_uid'
  'struct tracepoint __tracepoint_android_vh_do_futex'
  'struct tracepoint __tracepoint_android_vh_free_user'
  'struct tracepoint __tracepoint_android_vh_freq_qos_add_request'
  'struct tracepoint __tracepoint_android_vh_freq_qos_remove_request'
  'struct tracepoint __tracepoint_android_vh_freq_qos_update_request'
  'struct tracepoint __tracepoint_android_vh_futex_sleep_start'
  '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 'int __traceiter_android_vh_map_util_freq(void*, unsigned long, unsigned long, unsigned long, unsigned long*)' to 'int __traceiter_android_vh_map_util_freq(void*, unsigned long, unsigned long, unsigned long, unsigned long*, struct cpufreq_policy*, bool*)'
  CRC changed from 0xf7d7ec49 to 0x6387ede6
  type changed from 'int(void*, unsigned long, unsigned long, unsigned long, unsigned long*)' to 'int(void*, unsigned long, unsigned long, unsigned long, unsigned long*, struct cpufreq_policy*, bool*)'
    parameter 6 of type 'struct cpufreq_policy*' was added
    parameter 7 of type 'bool*' was added

function symbol 'struct block_device* I_BDEV(struct inode*)' changed
  CRC changed from 0xbc7aa1fb to 0x643ab287

function symbol 'void __ClearPageMovable(struct page*)' changed
  CRC changed from 0x3607cc69 to 0x6b61e392

function symbol 'void __SetPageMovable(struct page*, const struct movable_operations*)' changed
  CRC changed from 0x44efe80c to 0xc458591f

... 4288 omitted; 4291 symbols have only CRC changes

type 'struct net_device' changed
  member 'struct wireless_dev* ieee80211_ptr' was removed
  17 members ('struct wpan_dev* ieee802154_ptr' .. 'struct hlist_node index_hlist') changed
    offset changed by -64

type 'struct user_struct' changed
  byte size changed from 136 to 152
  member 'u64 android_oem_data1[2]' was added

type 'struct usb_udc' changed
  byte size changed from 800 to 832
  member 'struct mutex connect_lock' was added

type 'struct pwm_ops' changed
  member changed from 'void(* get_state)(struct pwm_chip*, struct pwm_device*, struct pwm_state*)' to 'int(* get_state)(struct pwm_chip*, struct pwm_device*, struct pwm_state*)'
    type changed from 'void(*)(struct pwm_chip*, struct pwm_device*, struct pwm_state*)' to 'int(*)(struct pwm_chip*, struct pwm_device*, struct pwm_state*)'
      pointed-to type changed from 'void(struct pwm_chip*, struct pwm_device*, struct pwm_state*)' to 'int(struct pwm_chip*, struct pwm_device*, struct pwm_state*)'
        return type changed from 'void' to 'int'

type 'struct raw_hashinfo' changed
  byte size changed from 2056 to 2112
  member changed from 'struct hlist_nulls_head ht[256]' to 'struct hlist_head ht[256]'
    offset changed from 64 to 512
    type changed from 'struct hlist_nulls_head[256]' to 'struct hlist_head[256]'
      element type changed from 'struct hlist_nulls_head' to 'struct hlist_head'

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

type 'struct kvm_vcpu_arch' changed
  8 members ('struct { u32 mdscr_el1; bool pstate_ss; } guest_debug_preserved' .. 'struct { u64 last_steal; gpa_t base; } steal') changed
    offset changed by -64

type 'struct kvm_pmu' changed
  byte size changed from 568 to 560
  member 'unsigned long chained[1]' was removed
  3 members ('int irq_num' .. 'bool irq_level') changed
    offset changed by -64

Bug: 280599882
Change-Id: I9cc7a0054e31080f855277619d64b50be908b206
Signed-off-by: Carlos Llamas <cmllamas@google.com>
2023-05-11 05:22:29 +00:00
Quentin Perret
444b34b83a 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>
2023-05-11 05:22:29 +00:00
Quentin Perret
47dfb4dc1f 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>
2023-05-11 05:22:29 +00:00
Ramji Jiyani
0c3629095a 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>
2023-05-11 05:22:29 +00:00
Ramji Jiyani
dcaaf3105a 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>
2023-05-11 05:22:29 +00:00
Ramji Jiyani
417e9da491 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>
2023-05-11 05:22:29 +00:00
xieliujie
10fd4118d8 ANDROID: ABI: Update oplus symbol list
7 function symbol(s) added
  'int __traceiter_android_vh_do_futex(void*, int, unsigned int*, u32*)'
  'int __traceiter_android_vh_futex_sleep_start(void*, struct task_struct*)'
  '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)'

7 variable symbol(s) added
  'struct tracepoint __tracepoint_android_vh_do_futex'
  'struct tracepoint __tracepoint_android_vh_futex_sleep_start'
  '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_commit_creds(void*, const struct task_struct*, const struct cred*)' changed
  CRC changed from 0xd5f5dd14 to 0xde74b382

function symbol 'int __traceiter_android_rvh_cpu_cgroup_online(void*, struct cgroup_subsys_state*)' changed
  CRC changed from 0xe93e16e8 to 0x1d0e0c6d

function symbol 'int __traceiter_android_rvh_exit_creds(void*, const struct task_struct*, const struct cred*)' changed
  CRC changed from 0xb188bdc4 to 0x376a9200

... 30 omitted; 33 symbols have only CRC changes

Bug: 279355016
Bug: 243110112
Bug: 210947226
Change-Id: Ia3d2cf9c5e063d681d22ea633214dd4bbb64de50
Signed-off-by: xieliujie <xieliujie@oppo.com>
2023-05-11 05:22:29 +00:00
xieliujie
22fd6b3625 ANDROID: vendor_hooks: Add hooks for futex
We want to use this hook to record the sleeping time due to Futex

Bug: 210947226
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
Change-Id: I637f889dce42937116d10979e0c40fddf96cd1a2
(cherry picked from commit a7ab784f60)
2023-05-11 05:22:29 +00:00
xieliujie
16f2ad77c7 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 53e8099784 ("ANDROID: vendor_hooks: Add hooks for scheduler")

Bug: 243110112
Signed-off-by: xieliujie <xieliujie@oppo.com>
Change-Id: I9a315cfb414fd34e0ef7a2cf9d57df50d4dd984f
(cherry picked from commit 548da5d23d)
2023-05-11 05:22:29 +00:00
Vinay Gannevaram
122e8a69e6 FROMGIT: wifi: nl80211: Add support for randomizing TA of auth and deauth frames
Add support to use a random local address in authentication and
deauthentication frames sent to unassociated peer when the driver
supports.

The driver needs to configure receive behavior to accept frames with
random transmit address specified in TX path authentication frames
during the time of the frame exchange is pending and such frames need to
be acknowledged similarly to frames sent to the local permanent address
when this random address functionality is used.

This capability allows use of randomized transmit address for PASN
authentication frames to improve privacy of WLAN clients.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Link: https://lore.kernel.org/r/20230112012415.167556-2-quic_vjakkam@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 280613325
Change-Id: Ife3ad20656cba20c1b971bb3a074cc27e21e2c5b
(cherry picked from commit 6933486133
https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git main)
Signed-off-by: Vinay Gannevaram <quic_vganneva@quicinc.com>
2023-05-11 05:22:29 +00:00
wang qiankun
a94203b881 ANDROID: GKI: update the ABI symbol list
INFO: ABI DIFFERENCES HAVE BEEN DETECTED!
INFO: 3 function symbol(s) added
  'int __traceiter_android_vh_freq_qos_add_request(void*, struct freq_constraints*, struct freq_qos_request*, enum freq_qos_req_type, int, int)'
  'int __traceiter_android_vh_freq_qos_remove_request(void*, struct freq_qos_request*)'
  'int __traceiter_android_vh_freq_qos_update_request(void*, struct freq_qos_request*, int)'

3 variable symbol(s) added
  'struct tracepoint __tracepoint_android_vh_freq_qos_add_request'
  'struct tracepoint __tracepoint_android_vh_freq_qos_remove_request'
  'struct tracepoint __tracepoint_android_vh_freq_qos_update_request'

function symbol 'void __balance_callbacks(struct rq*)' changed
  CRC changed from 0x6ea8ba01 to 0xd91539f

function symbol 'int __cpufreq_driver_target(struct cpufreq_policy*, unsigned int, unsigned int)' changed
  CRC changed from 0xaae60cb to 0xefc15f15

function symbol 'struct rq* __migrate_task(struct rq*, struct rq_flags*, struct task_struct*, int)' changed
  CRC changed from 0xf6d64717 to 0x860c6351

... 475 omitted; 478 symbols have only CRC changes

type 'struct dev_pm_qos_request' changed
  byte size changed from 72 to 88
  member 'union { struct plist_node pnode; struct pm_qos_flags_request flr; struct freq_qos_request freq; } data' changed
    type 'union { struct plist_node pnode; struct pm_qos_flags_request flr; struct freq_qos_request freq; }' changed
      byte size changed from 56 to 72
  member 'struct device* dev' changed
    offset changed by 128

type 'struct devfreq' changed
  byte size changed from 1720 to 1752
  member 'struct dev_pm_qos_request user_max_freq_req' changed
    offset changed by 128
  11 members ('unsigned long scaling_min_freq' .. 'struct notifier_block nb_max') changed
    offset changed by 256

type 'struct freq_qos_request' changed
  byte size changed from 56 to 72
  member 'u64 android_oem_data1[2]' was added

Bug: 277846574

Change-Id: If762eb4cfa3fa20e36798bba89bcc2f282e65342
Signed-off-by: wang qiankun <wangqiankun3@xiaomi.corp-partner.google.com>
2023-05-11 05:22:29 +00:00
lijianzhong
d73a7cebfd ANDROID: sched: Add ANDROID_OEM_DATA_ARRAY in user_struct.
Add ANDROID_OEM_DATA_ARRAY to the struct user so that we can record the
necessary data to implement the OEM's scheduling policy.

Bug: 183674818

Signed-off-by: lijianzhong <lijianzhong@xiaomi.com>
Change-Id: I418293391bc62a68207eae51a79bd45a7f6cd2ed
(cherry picked from commit 77e791866b)
2023-05-11 05:22:29 +00:00
heshuai1
0ea0d6a7a2 ANDROID: power: Add vendor hook to qos for GKI purpose.
Add vendor hooks in add/update/remove frequency QoS request process to
ensure that we can access the OEM's "frequency watchdog" logic for
abnormal frequency monitoring. This is necessary for our power tuning
policy.

Bug: 187458531

Signed-off-by: heshuai1 <heshuai1@xiaomi.com>
Change-Id: I1fb8fd6134432ecfb44ad242c66ccd8280ab9b43
(cherry picked from commit c445fe4dc67ad74dacfa548bc78876a7ce057086)
2023-05-11 05:22:29 +00:00
wang qiankun
71942c4f64 ANDROID: GKI: update the ABI symbol list
INFO: ABI DIFFERENCES HAVE BEEN DETECTED!
INFO: 4 function symbol(s) added
  'int __traceiter_android_vh_alloc_uid(void*, struct user_struct*)'
  'int __traceiter_android_vh_free_user(void*, struct user_struct*)'
  'struct user_struct* find_user(kuid_t)'
  'void free_uid(struct user_struct*)'

2 variable symbol(s) added
  'struct tracepoint __tracepoint_android_vh_alloc_uid'
  'struct tracepoint __tracepoint_android_vh_free_user'

function symbol 'struct block_device* I_BDEV(struct inode*)' changed
  CRC changed from 0xbf847796 to 0x9903391b

function symbol 'void __ClearPageMovable(struct page*)' changed

function symbol 'void __SetPageMovable(struct page*, const struct movable_operations*)' changed
  CRC changed from 0x9c92af65 to 0xfd8bfc31

... 4297 omitted; 4300 symbols have only CRC changes

type 'struct user_struct' changed
  byte size changed from 136 to 152
  member 'u64 android_oem_data1[2]' was added

Bug: 277846574

Change-Id: Ifd44123eb32963e8e9f85de84c505a28cff12d14
Signed-off-by: wang qiankun <wangqiankun3@xiaomi.corp-partner.google.com>
2023-05-11 05:22:29 +00:00
lijianzhong
c22b82c2e4 ANDROID: export find_user() & free_uid()for GKI purpose.
Exporting the symbols find_user() & free_uid() to access user task
information in ko module for monitoring and optimization purposes. This
is a necessary component of our scheduling policy.

Bug: 183674818

Signed-off-by: lijianzhong <lijianzhong@xiaomi.com>
Change-Id: I12135c0af312904dd21b6f074beda086ad5ece98
(cherry picked from commit 16350016d8)
(cherry picked from commit eec2cd3df3aa2d92136658d3619dc5142155c7d4)
2023-05-11 05:22:29 +00:00
heshuai1
4b87d7254b ANDROID: user: Add vendor hook to user for GKI purpose
In order to implement our scheduling tuning policy in certain cases, we
need to initialize the variables that we have defined in the
user_struct. To achieve this, we will add a vendor hook to user.c at
alloc_uid, which will ensure that our own logic is executed during the
initialization of the user_struct.

Bug: 187458531

Signed-off-by: heshuai1 <heshuai1@xiaomi.com>
Change-Id: I078484aac2c3d396aba5971d6d0f491652f3781c
(cherry picked from commit c9b8fa644f)
(cherry picked from commit 9ac0923ef565e4de4e1f35edcba6fcb7e45948c9)
2023-05-11 05:22:29 +00:00
lijianzhong
e273916482 ANDROID: sched: add trace_android_vh_map_util_freq parameter
Add "cpufreq_policy" and "need_freq_update" parameters to the vendor
hook to enable frequency calculation in certain special cases related to
OEM's frequency tuning policy.

Bug: 183674818

Signed-off-by: lijianzhong <lijianzhong@xiaomi.com>
Change-Id: I232d2e1ae885d6736eca9e4709870f4272b4873d
2023-05-11 05:22:29 +00:00
Badhri Jagan Sridharan
b9bb33b73c FROMGIT: usb: gadget: udc: core: Prevent redundant calls to pullup
usb_gadget_connect calls gadget->ops->pullup without checking whether
gadget->connected was previously set. Make this symmetric to
usb_gadget_disconnect by returning early if gadget->connected is
already set.

Bug: 279501392
Bug: 276227797
Fixes: 5a1da544e5 ("usb: gadget: core: do not try to disconnect gadget if it is not connected")
Cc: stable@vger.kernel.org
Change-Id: I60b23114c0df7b282bcb1ce638683960305992c5
Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
Link: https://lore.kernel.org/r/20230407030741.3163220-2-badhri@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit a3afbf5cc8
 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ usb-next)
2023-05-11 05:22:29 +00:00
Badhri Jagan Sridharan
d1c3092479 FROMGIT: usb: gadget: udc: core: Invoke usb_gadget_connect only when started
usb_udc_connect_control does not check to see if the udc has already
been started. This causes gadget->ops->pullup to be called through
usb_gadget_connect when invoked from usb_udc_vbus_handler even before
usb_gadget_udc_start is called. Guard this by checking for udc->started
in usb_udc_connect_control before invoking usb_gadget_connect.

Guarding udc->vbus, udc->started, gadget->connect, gadget->deactivate
related functions with connect_lock. usb_gadget_connect_locked,
usb_gadget_disconnect_locked, usb_udc_connect_control_locked,
usb_gadget_udc_start_locked, usb_gadget_udc_stop_locked are called with
this lock held as they can be simulataneously invoked from different code
paths.

Adding an additional check to make sure udc is started(udc->started)
before pullup callback is invoked.

Bug: 279501392
Bug: 276227797
Fixes: 628ef0d273 ("usb: udc: add usb_udc_vbus_handler")
Cc: stable@vger.kernel.org
Change-Id: Iee7ac5fdf880be5565b9f178708240d619141237
Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
Link: https://lore.kernel.org/r/20230407030741.3163220-1-badhri@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit a3afbf5cc8
 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ usb-next)
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
0d9ea5d875 Revert "Revert "KVM: arm64: PMU: Don't save PMCR_EL0.{C,P} for the vCPU""
This reverts commit 067f7ca9fd.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: Ie5c4e8b82bac1966ea56834f02ddcc83dccbd7d1
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
8e52c029c9 Revert "Revert "KVM: arm64: PMU: Sanitise PMCR_EL0.LP on first vcpu run""
This reverts commit a8fa816c4d.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: I6ca9a9f70805782cdacd7fedc2a057405aae5774
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
350ced2ef1 Revert "Revert "KVM: arm64: PMU: Distinguish between 64bit counter and 64bit overflow""
This reverts commit 7ddb50fff2.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: Ie92c7e1fa270672698399600076ac9be1e0ac4f4
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
0871e23703 Revert "Revert "KVM: arm64: PMU: Align chained counter implementation with architecture pseudocode""
This reverts commit 9d29ba9c30.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: Iae5f3a6a9025e17aa7b1a0fd805c13953bc0c554
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
019fe14f01 Revert "Revert "pwm: meson: Explicitly set .polarity in .get_state()""
This reverts commit af88eb49be.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: Iaf8c7af434912fc219d411c8c9b17292f1605af5
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
0dff4eccbe Revert "Revert "pwm: sprd: Explicitly set .polarity in .get_state()""
This reverts commit 46e1414454.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: I935958cfe8d7e01c7469818609534cfd0e9ba6de
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
fa46734e23 Revert "Revert "pwm: iqs620a: Explicitly set .polarity in .get_state()""
This reverts commit 301169bd8c.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: I0ffa37b35a4abce29f9ddde7bebf0b8df159fa1e
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
6d6d97db89 Revert "Revert "pwm: cros-ec: Explicitly set .polarity in .get_state()""
This reverts commit b8301c2638.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: I4e97d4fb46ce6596880749b8486bbeafb3151d4a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
dd7c812051 Revert "Revert "pwm: hibvt: Explicitly set .polarity in .get_state()""
This reverts commit 6996d13954.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: I29bcae8b8b502b7c4a4b79650996d1ba2556f1c7
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
3aceb12dc1 Revert "Revert "pwm: Make .get_state() callback return an error code""
This reverts commit a3a763fb37.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: Ie5a36427c09a3cc7f89949e05c0bb6b013f9c591
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
18c6e1f4af Revert "Revert "raw: Fix NULL deref in raw_get_next().""
This reverts commit cc7a00d2d6.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: I30a89a414afcc3db54c040afff3ab067b33170be
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Greg Kroah-Hartman
01e7770c33 Revert "Revert "raw: use net_hash_mix() in hash function""
This reverts commit 2039635543.

It was perserving the ABI, but that is not needed anymore at this point
in time.

Change-Id: Iaa9f70751453325f43d15bc6e4f6cf5bc68d6ec2
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-11 05:22:29 +00:00
Po-Wen Kao
6203e02485 FROMLIST: scsi: ufs: core: Fix mcq nr_hw_queues
Since MAXQ is 0 based value, add one to obtain number of hardware queue.

Bug: 267974767
Link: https://lore.kernel.org/all/20230504154454.26654-4-powen.kao@mediatek.com/
Signed-off-by: Po-Wen Kao <powen.kao@mediatek.com>
Reviewed-by: Bean Huo <beanhuo@micron.com>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Change-Id: Id9facc9ff54f08e599e6f7026924c664cfeaad51
2023-05-11 03:22:33 +00:00
Po-Wen Kao
090320760a FROMLIST: scsi: ufs: core: Rename symbol sizeof_utp_transfer_cmd_desc()
Naming the functions after standard operators like sizeof may cause
confusion. So let's rename it to ufshcd_get_ucd_size().

Bug: 267974767
Link: https://lore.kernel.org/all/20230504154454.26654-3-powen.kao@mediatek.com/
Signed-off-by: Po-Wen Kao <powen.kao@mediatek.com>
Suggested-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Reviewed-by: Ziqi Chen <quic_ziqichen@quicinc.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Change-Id: Icee01d55d0cf932fd70d1b6e796fcf31b233be5c
2023-05-11 03:22:33 +00:00
Po-Wen Kao
922ab3cbf4 FROMLIST: scsi: ufs: core: Fix mcq tag calcualtion
Transfer command descriptor is allocated in ufshcd_memory_alloc()
and referenced by transfer request descriptor with stride size
sizeof_utp_transfer_cmd_desc()
instead of
sizeof(struct utp_transfer_cmd_desc).

Consequently, computing tag by address offset should also refer to the
same stride.

Bug: 267974767
Link: https://lore.kernel.org/all/20230504154454.26654-2-powen.kao@mediatek.com/
Signed-off-by: Po-Wen Kao <powen.kao@mediatek.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Reviewed-by: Ziqi Chen <quic_ziqichen@quicinc.com>
Change-Id: Ibe3cba615e80287b93e42c268fccd03531f364b8
2023-05-11 03:22:33 +00:00
Ulises Mendez Martinez
119cead9cf 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)
2023-05-10 17:05:37 +00:00
Kim Ba
1e0916fb95 ANDROID: GKI: Add symbols to symbol list for vivo
INFO: 2 function symbol(s) added
  'void* regulator_get_drvdata(struct regulator*)'
  'int ucsi_send_command(struct ucsi*, u64, void*, size_t)'

Bug: 194373509
Change-Id: I75324ae19c83dccfb0f14dbdcc801f73338f4ea6
Signed-off-by: Mingli Feng <mingli.feng@vivo.com>
Signed-off-by: Kim Ba <kim.ba@vivo.com>
Signed-off-by: Kim Ba <kim.ba@vivo.corp-partner.google.com>
2023-05-10 15:30:23 +00:00
Quentin Perret
ccfe12aa18 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>
2023-05-10 07:44:00 +00:00
Yifan Hong
dac17bb8f7 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>
2023-05-09 22:36:11 +00:00
Chun-Hung Wu
7e62fb828f FROMLIST: clocksource/drivers/timer-mediatek: Make timer-mediatek become loadable module
Make the timer-mediatek driver which can register
an always-on timer as tick_broadcast_device on
MediaTek SoCs become loadable module in GKI.

Signed-off-by: Chun-Hung Wu <chun-hung.wu@mediatek.com>
Signed-off-by: Walter Chang <walter.chang@mediatek.com>
Tested-by: Walter Chang <walter.chang@mediatek.com>a

Link: https://lore.kernel.org/lkml/20230421034649.15247-5-walter.chang@mediatek.com/T/
Bug: 161675989
Change-Id: I73ad74f0024a8e72ed7f60754d26433c2149e270
Signed-off-by: Chun-Hung Wu <chun-hung.wu@mediatek.com>
2023-05-09 09:49:00 +00:00
Chun-Hung Wu
4625c2b602 FROMLIST: clocksource/drivers/timer-of: Remove __init markings
Remove __init markings to allow timer drivers
can be compiled as modules.

Link: https://lore.kernel.org/lkml/20230421034649.15247-5-walter.chang@mediatek.com/T/
Bug: 161675989
Change-Id: I74c9d1b4bc6f49dc5a69b4502ca68cb8cc3cbf02
Signed-off-by: Chun-Hung Wu <chun-hung.wu@mediatek.com>
2023-05-09 09:49:00 +00:00
Chun-Hung Wu
bc213daa95 FROMLIST: clocksource/drivers/mmio: Export clocksource_mmio_init()
Export clocksource_mmio_init() and clocksource_mmio_readl_up()
to support building clocksource driver as module,
such as timer-mediatek.c.

Link: https://lore.kernel.org/lkml/20230421034649.15247-5-walter.chang@mediatek.com/T/
Bug: 161675989
Change-Id: I4cbed905fc671d6daa7e01d66df4b910e7c32a1e
Signed-off-by: Chun-Hung Wu <chun-hung.wu@mediatek.com>
2023-05-09 09:49:00 +00:00
Chun-Hung Wu
c451105379 FROMLIST: time/sched_clock: Export sched_clock_register()
clocksource driver may use sched_clock_register()
to resigter itself as a sched_clock source.
Export it to support building such driver
as module, like timer-mediatek.c

Link: https://lore.kernel.org/lkml/20230421034649.15247-5-walter.chang@mediatek.com/T/
Bug: 161675989
Change-Id: Ib052d1fd7ccf6a7422eb6f1755515e1236285e01
Signed-off-by: Chun-Hung Wu <chun-hung.wu@mediatek.com>
2023-05-09 09:49:00 +00:00