Commit Graph

1149291 Commits

Author SHA1 Message Date
Waiman Long
9e8fe54a71 BACKPORT: mm/kmemleak: fix UAF bug in kmemleak_scan()
Commit 6edda04ccc ("mm/kmemleak: prevent soft lockup in first object
iteration loop of kmemleak_scan()") fixes soft lockup problem in
kmemleak_scan() by periodically doing a cond_resched().  It does take a
reference of the current object before doing it.  Unfortunately, if the
object has been deleted from the object_list, the next object pointed to
by its next pointer may no longer be valid after coming back from
cond_resched().  This can result in use-after-free and other nasty
problem.

Fix this problem by adding a del_state flag into kmemleak_object structure
to synchronize the object deletion process between kmemleak_cond_resched()
and __remove_object() to make sure that the object remained in the
object_list in the duration of the cond_resched() call.

Link: https://lkml.kernel.org/r/20230119040111.350923-3-longman@redhat.com
Fixes: 6edda04ccc ("mm/kmemleak: prevent soft lockup in first object iteration loop of kmemleak_scan()")
Change-Id: I7d44a56d2943e7140d9bcad56c6b1a20236f3827
Signed-off-by: Waiman Long <longman@redhat.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Muchun Song <songmuchun@bytedance.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 782e417953)
[surenb: resolve trivial merge conflict due to the new pinned parameter
in kmemleak_cond_resched]

Bug: 280352049
Change-Id: Id1b794a3f22053141a0e86269a3316da1da317db
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2023-05-15 19:08:33 +00:00
Yi Kong
362369c2e9 ANDROID: clang: update to 17.0.2
Change-Id: Iac98d18aa284b05267d47a08b30102103e71d293
Test: presubmit
Bug: 277565884
Bug: 279955553
Signed-off-by: Yi Kong <yikong@google.com>
2023-05-15 18:53:36 +00:00
Satya Durga Srinivasu Prabhala
96cb2c28cd ANDROID: abi_gki_aarch64_qcom: update symbol list
Commit fbb735239d ("ANDROID: GKI: Convert USB network adpaters to modules")
converted USB network adpaters drivers from in-built to modules which changed
KMI. QCOM symbol list needs to be updated due to KMI changes.

Symbols added:
   dev_get_tstats64
   eth_platform_get_mac_address
   icc_provider_deregister
   icc_provider_init
   icc_provider_register
   kmalloc_large_node
   __mdiobus_register
   netif_set_tso_max_size
   __of_mdiobus_register
   phy_do_ioctl_running
   phy_suspend
   usb_altnum_to_altsetting
   usb_driver_set_configuration
   usb_enable_lpm
   usb_get_urb
   usb_reset_configuration
   usb_string
   usb_unlink_urb

Bug: 281929052
Change-Id: I5a707d3a47cbba4fe20d9c4151541f0caefd263c
Signed-off-by: Satya Durga Srinivasu Prabhala <quic_satyap@quicinc.com>
2023-05-15 18:06:37 +00:00
Ming Qian
b176c2f44d UPSTREAM: media: add nv12_8l128 and nv12_10be_8l128 video format.
add contiguous nv12 tiled format nv12_8l128 and nv12_10be_8l128

Signed-off-by: Ming Qian <ming.qian@nxp.com>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Bug: 279270030
Change-Id: Idcad785b8952765030462fb7c133be7913aff671
(cherry picked from commit 5b8bb216e9)
Signed-off-by: Jindong Yue <jindong.yue@nxp.com>
2023-05-15 15:15:49 +00:00
YOUNGJIN JOO
fc305a2a2e ANDROID: ABI: update symbol list for galaxy
27 function symbol(s) added
  'void __blk_req_zone_write_lock(struct request*)'
  'void __blk_req_zone_write_unlock(struct request*)'
  'int __traceiter_block_rq_insert(void*, struct request*)'
  'void blk_mq_sched_mark_restart_hctx(struct blk_mq_hw_ctx*)'
  'bool blk_mq_sched_try_insert_merge(struct request_queue*, struct request*, struct list_head*)'
  'bool blk_mq_sched_try_merge(struct request_queue*, struct bio*, unsigned int, struct request**)'
  'void blk_queue_rq_timeout(struct request_queue*, unsigned int)'
  'bool blk_req_needs_zone_write_lock(struct request*)'
  '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*)'
  'struct cgroup_subsys_state* css_next_descendant_pre(struct cgroup_subsys_state*, struct cgroup_subsys_state*)'
  'struct elevator_queue* elevator_alloc(struct request_queue*, struct elevator_type*)'
  'bool elv_bio_merge_ok(struct request*, struct bio*)'
  'void elv_rb_add(struct rb_root*, struct request*)'
  'void elv_rb_del(struct rb_root*, struct request*)'
  'struct request* elv_rb_find(struct rb_root*, sector_t)'
  'struct request* elv_rb_former_request(struct request_queue*, struct request*)'
  'struct request* elv_rb_latter_request(struct request_queue*, struct request*)'
  'int elv_register(struct elevator_type*)'
  'void elv_rqhash_add(struct request_queue*, struct request*)'
  'void elv_rqhash_del(struct request_queue*, struct request*)'
  'void elv_unregister(struct elevator_type*)'
  'void netlink_ack(struct sk_buff*, struct nlmsghdr*, int, const struct netlink_ext_ack*)'
  'void sbitmap_queue_min_shallow_depth(struct sbitmap_queue*, unsigned int)'

2 variable symbol(s) added
  'struct tracepoint __tracepoint_block_rq_insert'
  'struct blkcg blkcg_root'

Bug: 281600294
Change-Id: I8bd1c3bec5d667302055924bb4fd75e4967b97d3
Signed-off-by: YOUNGJIN JOO <youngjin79.joo@samsung.com>
2023-05-15 10:24:36 +00:00
Ulises Mendez Martinez
81509f85f3 ANDROID: db845c: Remove MAKE_GOALS from build.config
* Instead use the equivalent kernel_build attribute.
* This migrates rockpi4 `MAKE_GOALS` too.

Bug: 236012223
Change-Id: Icf47eb42795100b4955f02170a002689c7566194
Signed-off-by: Ulises Mendez Martinez <umendez@google.com>
2023-05-15 07:01:39 +00:00
Ramji Jiyani
6f4553626d ANDROID: GKI: gen_gki_modules_headers update preprocessing
Since we do not enforce symbol lists to be generated using
the ABI tooling; it is possible to have the symbol list
updates with CRLF characters at the end of a line, leading
and trailining white spaces based on how they are manually
edited. The header generation script fails in this case when
it parses these symbols with CRLF or sorting order may not
be correct for symbols with trailing white spaces.

Update the preprocessing of the symbol list to remove any
carriage returns, strip any leading and trailing white spaces
in addition to the other preprocessing.

Bug: 280837072
Test: TH, manual verification
Change-Id: I4b832c28b42f196056c38fc3e2ccd517a03e13fa
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
(cherry picked from commit 6b893a535cfa8a5e9a6cd792e0437fe66cb2296b)
2023-05-12 19:53:48 +00:00
John Stultz
da126f8d02 FROMGIT: locking/rwsem: Add __always_inline annotation to __down_read_common() and inlined callers
Apparently despite it being marked inline, the compiler
may not inline __down_read_common() which makes it difficult
to identify the cause of lock contention, as the blocked
function in traceevents will always be listed as
__down_read_common().

So this patch adds __always_inline annotation to the common
function (as well as the inlined helper callers) to force it to
be inlined so the blocking function will be listed (via Wchan)
in traceevents.

Fixes: c995e638cc ("locking/rwsem: Fold __down_{read,write}*()")
Reported-by: Tim Murray <timmurray@google.com>
Signed-off-by: John Stultz <jstultz@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Waiman Long <longman@redhat.com>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20230503023351.2832796-1-jstultz@google.com
Bug: 277817995
(cherry picked from commit 92cc5d00a4
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/urgent)
Signed-off-by: John Stultz <jstultz@google.com>
(cherry picked from https://android-review.googlesource.com/q/commit:a6c75b2e64573cb9f49f6b89808207856fc0309b)
Merged-In: Ifad7ed7fe9f2d5a9eb0cfe7c35e45c0e86bc3ad4
Change-Id: Ifad7ed7fe9f2d5a9eb0cfe7c35e45c0e86bc3ad4
2023-05-12 18:16:24 +00:00
Benedict Wong
952048f512 FROMGIT: xfrm: Check if_id in inbound policy/secpath match
This change ensures that if configured in the policy, the if_id set in
the policy and secpath states match during the inbound policy check.
Without this, there is potential for ambiguity where entries in the
secpath differing by only the if_id could be mismatched.

Notably, this is checked in the outbound direction when resolving
templates to SAs, but not on the inbound path when matching SAs and
policies.

Test: Tested against Android kernel unit tests & CTS
Signed-off-by: Benedict Wong <benedictwong@google.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>

Bug: 279217934
(cherry picked from commit 8680407b6f
 https://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec.git master)
Change-Id: Ibb97561eaf1a99b7ad239d4d4860bfe5b0ac20ea
Signed-off-by: Carlos Llamas <cmllamas@google.com>
2023-05-12 16:23:38 +00:00
Greg Kroah-Hartman
006d1fc450 ANDROID: always add the struct wireless_dev * to struct net_device
When Android moved the wifi drivers to be a vendor driver, it disabled
CFG80211 from the build configuration, yet that needs to be enabled in
the vendor module build.  As the struct net_device is defined in the
core kernel image, both builds needs to have the same structure size, so
always enable it in the structure and protect any potential vendor
changes from showing up in the CRC checker by maing it a void * as far
as it is concerned.

Also update the kernel abi definition to resolve this:

function symbol 'int ___pskb_trim(struct sk_buff*, unsigned int)' changed
  CRC changed from 0x3d8e01bc to 0x6c6bbe0a

function symbol 'struct sk_buff* __alloc_skb(unsigned int, gfp_t, int, int)' changed
  CRC changed from 0x35a57bd5 to 0xd9823116

function symbol 'int __dev_change_net_namespace(struct net_device*, struct net*, const char*, int)' changed
  CRC changed from 0x8bc2389e to 0x1c3133b9

... 823 omitted; 826 symbols have only CRC changes

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

Fixes: c304eddcec ("net: wrap the wireless pointers in struct net_device in an ifdef")
Change-Id: I7c2a10da63b6022abbac78a3a0d48c2fd405f42c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-05-12 15:37:37 +00:00
Zhipeng Wang
eea2369f36 ANDROID: ABI: Update symbol list for imx
11 function symbol(s) added
  'struct iio_trigger* __iio_trigger_alloc(struct device*, struct module*, const char*, ...)'
  'struct config_group* configfs_register_default_group(struct config_group*, const char*, const struct config_item_type*)'
  'void configfs_unregister_default_group(struct config_group*)'
  'ssize_t iio_format_value(char*, unsigned int, int, int*)'
  'int iio_str_to_fixpoint(const char*, int, int*, int*)'
  'void iio_trigger_free(struct iio_trigger*)'
  'void iio_trigger_poll(struct iio_trigger*)'
  'int iio_trigger_register(struct iio_trigger*)'
  'void iio_trigger_unregister(struct iio_trigger*)'
  'int power_supply_am_i_supplied(struct power_supply*)'
  'void* rproc_da_to_va(struct rproc*, u64, size_t, bool*)'

1 variable symbol(s) added
  'struct bus_type iio_bus_type'

Bug: 277791334
Change-Id: I9caec5e54a2b49b096581f3079314f09cbb1c69c
Signed-off-by: Zhipeng Wang <zhipeng.wang_1@nxp.com>
2023-05-12 02:18:39 +00:00
Greg Kroah-Hartman
af58dc05bb Merge "Merge be100a8460 ("LoongArch: Mark 3 symbol exports as non-GPL") into android14-6.1" into android14-6.1 2023-05-12 01:17:26 +00:00
Will Deacon
3e404f3f97 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: 417e986b54 ("ANDROID: KVM: arm64: Move addr_is_allowed_memory() check into host callback")
Signed-off-by: Will Deacon <willdeacon@google.com>
Change-Id: Ic28a2557d6d515b356645228fd41d3c921826489
2023-05-11 22:31:34 +00:00
Badhri Jagan Sridharan
e4411db286 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>
2023-05-11 17:18:58 +00:00
Bart Van Assche
cf1c6c7900 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>
2023-05-11 17:08:35 +00:00
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