Merge branch 'android14-6.1' into branch 'android14-6.1-lts'

This syncs up the -lts branch with the changes in the non-lts branch,
specifically needed for the ABI symbol updates to allow the build
servers to keep running properly.

Included in here are commits:
* df1cdb0a70 ANDROID: Update the pixel symbol list
* 66cd99ccdb BACKPORT: UPSTREAM: phy: qcom-qmp: Introduce Kconfig symbols for discrete drivers
* a70d3b7bdd ANDROID: GKI: add symbols of vendor hooks to ABI for swapping in ahead
* d4db0d5d08 ANDROID: GKI: add vendor hooks for swapping in ahead
* fd40c1d901 ANDROID: add 16k targets for Microdroid kernel
* 82bf9e7625 FROMGIT: BACKPORT: mm/cma: fix placement of trace_cma_alloc_start/finish
* 800cac4b33 FROMGIT: wifi: nl80211: Extend del pmksa support for SAE and OWE security

Change-Id: I94352b7351253b88af675cc7749bde2936dd91c7
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2024-01-16 15:51:49 +00:00
commit 732ef8a408
12 changed files with 313 additions and 42 deletions

View File

@ -198,6 +198,34 @@ copy_to_dist_dir(
log = "info",
)
kernel_build(
name = "kernel_aarch64_microdroid_16k",
srcs = ["//common:kernel_aarch64_sources"],
outs = [
"Image",
"System.map",
"modules.builtin",
"modules.builtin.modinfo",
"vmlinux",
"vmlinux.symvers",
],
build_config = "build.config.microdroid.aarch64",
make_goals = [
"Image",
],
page_size = "16k",
)
copy_to_dist_dir(
name = "kernel_aarch64_microdroid_16k_dist",
data = [
":kernel_aarch64_microdroid_16k",
],
dist_dir = "out/kernel_aarch64_microdroid_16k/dist",
flat = True,
log = "info",
)
# Microdroid is not a real device. The kernel image is built with special
# configs to reduce the size. Hence, not using mixed build.
kernel_build(

View File

@ -317323,6 +317323,12 @@ function {
parameter_id: 0x064d6086
parameter_id: 0x064d6086
}
function {
id: 0x9b32d0a3
return_type_id: 0x6720d32f
parameter_id: 0x18bd6530
parameter_id: 0x275ab027
}
function {
id: 0x9b32f2ad
return_type_id: 0x6720d32f
@ -337695,6 +337701,15 @@ elf_symbol {
type_id: 0x9b3343fb
full_name: "__traceiter_android_vh_ra_tuning_max_page"
}
elf_symbol {
id: 0xb35da0ec
name: "__traceiter_android_vh_read_pages"
is_defined: true
symbol_type: FUNCTION
crc: 0x4cb21384
type_id: 0x9b32d0a3
full_name: "__traceiter_android_vh_read_pages"
}
elf_symbol {
id: 0x7d069e91
name: "__traceiter_android_vh_record_mutex_lock_starttime"
@ -341700,6 +341715,15 @@ elf_symbol {
type_id: 0x18ccbd2c
full_name: "__tracepoint_android_vh_ra_tuning_max_page"
}
elf_symbol {
id: 0x9fc2933e
name: "__tracepoint_android_vh_read_pages"
is_defined: true
symbol_type: OBJECT
crc: 0xb3878023
type_id: 0x18ccbd2c
full_name: "__tracepoint_android_vh_read_pages"
}
elf_symbol {
id: 0x761f292f
name: "__tracepoint_android_vh_record_mutex_lock_starttime"
@ -354354,6 +354378,24 @@ elf_symbol {
type_id: 0x1023f4f6
full_name: "dma_contiguous_default_area"
}
elf_symbol {
id: 0x279bd3a7
name: "dma_direct_alloc"
is_defined: true
symbol_type: FUNCTION
crc: 0xb02b3af0
type_id: 0x55df36a2
full_name: "dma_direct_alloc"
}
elf_symbol {
id: 0x0e847130
name: "dma_direct_free"
is_defined: true
symbol_type: FUNCTION
crc: 0x051debf6
type_id: 0x13db1955
full_name: "dma_direct_free"
}
elf_symbol {
id: 0xd13969dd
name: "dma_fence_add_callback"
@ -372912,6 +372954,15 @@ elf_symbol {
type_id: 0xfcd23386
full_name: "ns_capable"
}
elf_symbol {
id: 0x27a870d1
name: "ns_capable_noaudit"
is_defined: true
symbol_type: FUNCTION
crc: 0x3c75b0e0
type_id: 0xfcd23386
full_name: "ns_capable_noaudit"
}
elf_symbol {
id: 0xf68f8b33
name: "ns_to_kernel_old_timeval"
@ -399468,6 +399519,7 @@ interface {
symbol_id: 0xf2c39651
symbol_id: 0x93303c51
symbol_id: 0x3a545b61
symbol_id: 0xb35da0ec
symbol_id: 0x7d069e91
symbol_id: 0x0fa39b81
symbol_id: 0x1a91ec8c
@ -399913,6 +399965,7 @@ interface {
symbol_id: 0x0e92ee53
symbol_id: 0xb0c197a3
symbol_id: 0x811d5fab
symbol_id: 0x9fc2933e
symbol_id: 0x761f292f
symbol_id: 0xef7ad117
symbol_id: 0x158c4cfa
@ -401318,6 +401371,8 @@ interface {
symbol_id: 0x710f1fc2
symbol_id: 0xaa54a71f
symbol_id: 0x5f554bc7
symbol_id: 0x279bd3a7
symbol_id: 0x0e847130
symbol_id: 0xd13969dd
symbol_id: 0xe2ee283f
symbol_id: 0xf5808a3e
@ -403380,6 +403435,7 @@ interface {
symbol_id: 0xea37502b
symbol_id: 0x0bb7f730
symbol_id: 0xb65e3baf
symbol_id: 0x27a870d1
symbol_id: 0xf68f8b33
symbol_id: 0xfab02ca8
symbol_id: 0xd7668767

View File

@ -3,8 +3,11 @@
add_cpu
add_timer
add_timer_on
add_uevent_var
add_wait_queue
adjust_managed_page_count
aes_encrypt
aes_expandkey
alarm_cancel
alarm_init
alarm_start_relative
@ -19,6 +22,7 @@
__alloc_percpu
__alloc_percpu_gfp
__alloc_skb
alloc_skb_with_frags
alloc_workqueue
alt_cb_patch_nops
amba_bustype
@ -243,6 +247,7 @@
cpufreq_get_policy
cpufreq_policy_transition_delay_us
cpufreq_quick_get
cpufreq_quick_get_max
cpufreq_register_driver
cpufreq_register_governor
cpufreq_register_notifier
@ -261,6 +266,7 @@
cpu_hwcaps
cpuidle_driver_state_disabled
cpuidle_get_driver
cpuidle_governor_latency_req
cpu_latency_qos_add_request
cpu_latency_qos_remove_request
cpu_latency_qos_update_request
@ -276,6 +282,7 @@
cpus_read_lock
cpus_read_unlock
cpu_subsys
cpu_topology
crc32_be
crc32_le
crc8
@ -298,6 +305,7 @@
crypto_register_shash
crypto_req_done
crypto_shash_digest
crypto_shash_final
crypto_shash_finup
crypto_shash_setkey
crypto_shash_update
@ -311,10 +319,12 @@
csum_partial
csum_tcpudp_nofold
_ctype
datagram_poll
deactivate_task
debugfs_attr_read
debugfs_attr_write
debugfs_create_atomic_t
debugfs_create_blob
debugfs_create_bool
debugfs_create_devm_seqfile
debugfs_create_dir
@ -499,7 +509,11 @@
dev_pm_opp_of_remove_table
dev_pm_opp_put
dev_pm_opp_set_config
dev_pm_qos_add_notifier
dev_pm_qos_add_request
dev_pm_qos_read_value
dev_pm_qos_remove_notifier
dev_pm_qos_remove_request
dev_pm_qos_update_request
_dev_printk
dev_printk_emit
@ -540,6 +554,8 @@
dma_buf_unmap_attachment
dma_buf_vmap
dma_buf_vunmap
dma_direct_alloc
dma_direct_free
dmaengine_unmap_put
dma_fence_add_callback
dma_fence_array_create
@ -559,6 +575,7 @@
dma_fence_wait_timeout
dma_free_attrs
dma_free_pages
dma_get_sgtable_attrs
dma_get_slave_caps
dma_get_slave_channel
dma_heap_add
@ -865,6 +882,7 @@
find_task_by_vpid
find_vma_intersection
finish_wait
firmware_request_nowarn
flush_dcache_page
flush_delayed_work
flush_work
@ -1037,6 +1055,7 @@
ida_destroy
ida_free
idr_alloc
idr_alloc_cyclic
idr_destroy
idr_find
idr_for_each
@ -1056,6 +1075,7 @@
in6_pton
in_aton
inc_zone_page_state
in_egroup_p
inet_csk_get_port
init_dummy_netdev
init_iova_domain
@ -1065,6 +1085,7 @@
__init_swait_queue_head
init_task
init_timer_key
init_user_ns
init_uts_ns
init_wait_entry
__init_waitqueue_head
@ -1132,8 +1153,10 @@
io_schedule_timeout
iounmap
iova_domain_init_rcaches
iov_iter_revert
ip_compute_csum
ip_send_check
__ipv6_addr_type
__irq_alloc_descs
__irq_apply_affinity_hint
irq_create_mapping_affinity
@ -1165,11 +1188,16 @@
jiffies_to_usecs
kasan_flag_enabled
kasprintf
kernel_bind
kernel_connect
kernel_cpustat
kernel_getsockname
kernel_kobj
kernel_param_lock
kernel_param_unlock
kernel_recvmsg
kernel_restart
kernel_sendmsg
kernfs_find_and_get_ns
kernfs_notify
kernfs_path_from_node
@ -1196,6 +1224,7 @@
kmalloc_trace
kmem_cache_alloc
kmem_cache_create
kmem_cache_create_usercopy
kmem_cache_destroy
kmem_cache_free
kmemdup
@ -1210,6 +1239,7 @@
kobject_uevent_env
kobj_sysfs_ops
krealloc
ksize
kstat
kstrdup
kstrndup
@ -1274,6 +1304,7 @@
__list_del_entry_valid
list_sort
__local_bh_enable_ip
lock_sock_nested
log_abnormal_wakeup_reason
log_post_read_mmio
log_post_write_mmio
@ -1299,6 +1330,12 @@
memdup_user_nul
memmove
memparse
mempool_alloc
mempool_alloc_slab
mempool_create
mempool_destroy
mempool_free
mempool_free_slab
memremap
mem_section
memset
@ -1350,6 +1387,7 @@
napi_complete_done
napi_disable
napi_enable
napi_gro_flush
napi_gro_receive
__napi_schedule
napi_schedule_prep
@ -1366,7 +1404,9 @@
netif_receive_skb
netif_receive_skb_list
netif_rx
netif_tx_lock
netif_tx_stop_all_queues
netif_tx_unlock
netif_tx_wake_queue
netlink_broadcast
__netlink_kernel_create
@ -1393,6 +1433,7 @@
nr_cpu_ids
nr_irqs
ns_capable
ns_capable_noaudit
nsec_to_clock_t
ns_to_timespec64
__num_online_cpus
@ -1494,6 +1535,7 @@
panic_notifier_list
param_array_ops
param_get_int
param_get_string
param_ops_bool
param_ops_byte
param_ops_charp
@ -1502,10 +1544,14 @@
param_ops_string
param_ops_uint
param_ops_ulong
param_set_copystring
param_set_int
pci_alloc_irq_vectors_affinity
pci_assign_resource
pci_clear_master
pci_disable_device
pci_disable_msi
pcie_capability_read_word
pci_enable_device
pci_enable_wake
pci_find_bus
@ -1513,6 +1559,9 @@
pci_find_ext_capability
pci_free_irq_vectors
pci_get_device
pci_iomap
pci_iounmap
pci_irq_vector
pci_load_and_free_saved_state
pci_load_saved_state
pci_msi_mask_irq
@ -1520,7 +1569,9 @@
pci_read_config_dword
pci_read_config_word
__pci_register_driver
pci_release_region
pci_release_regions
pci_request_region
pci_rescan_bus
pci_restore_msi_state
pci_restore_state
@ -1618,6 +1669,7 @@
__pm_runtime_use_autosuspend
__pm_stay_awake
pm_stay_awake
pm_system_wakeup
pm_wakeup_dev_event
pm_wakeup_ws_event
power_supply_changed
@ -1652,6 +1704,8 @@
proc_remove
proc_set_size
proc_symlink
proto_register
proto_unregister
pskb_expand_head
__pskb_pull_tail
___pskb_trim
@ -1672,7 +1726,9 @@
radix_tree_delete_item
radix_tree_gang_lookup
radix_tree_insert
radix_tree_iter_delete
radix_tree_lookup
radix_tree_next_chunk
radix_tree_preload
___ratelimit
raw_notifier_call_chain
@ -1680,9 +1736,11 @@
raw_notifier_chain_unregister
_raw_read_lock
_raw_read_lock_bh
_raw_read_lock_irq
_raw_read_lock_irqsave
_raw_read_unlock
_raw_read_unlock_bh
_raw_read_unlock_irq
_raw_read_unlock_irqrestore
_raw_spin_lock
_raw_spin_lock_bh
@ -1696,9 +1754,11 @@
_raw_spin_unlock_irq
_raw_spin_unlock_irqrestore
_raw_write_lock
_raw_write_lock_bh
_raw_write_lock_irq
_raw_write_lock_irqsave
_raw_write_unlock
_raw_write_unlock_bh
_raw_write_unlock_irq
_raw_write_unlock_irqrestore
rb_erase
@ -1713,6 +1773,7 @@
rdev_get_drvdata
rdev_get_id
reboot_mode
refcount_dec_not_one
refcount_warn_saturate
__refrigerator
regcache_cache_only
@ -1730,6 +1791,7 @@
register_netdev
register_netdevice
register_netdevice_notifier
register_netevent_notifier
register_oom_notifier
register_pernet_device
register_pernet_subsys
@ -1772,11 +1834,13 @@
regulator_notifier_call_chain
regulator_put
regulator_set_active_discharge_regmap
regulator_set_load
regulator_set_voltage
regulator_set_voltage_sel_regmap
regulator_unregister
release_firmware
__release_region
release_sock
remap_pfn_range
remap_vmalloc_range
remove_cpu
@ -1877,6 +1941,7 @@
seq_read
seq_release
seq_release_private
seq_vprintf
seq_write
set_capacity
set_capacity_and_notify
@ -1917,20 +1982,25 @@
single_open
single_open_size
single_release
sk_alloc
skb_add_rx_frag
skb_checksum
skb_checksum_help
skb_clone
skb_clone_sk
skb_coalesce_rx_frag
skb_complete_wifi_ack
skb_copy
skb_copy_bits
skb_copy_datagram_iter
skb_copy_expand
skb_dequeue
skb_dequeue_tail
skb_ensure_writable
skb_free_datagram
__skb_get_hash
__skb_gso_segment
__skb_pad
skb_pull
skb_push
skb_put
@ -1938,7 +2008,11 @@
skb_queue_purge
skb_queue_tail
skb_realloc_headroom
skb_recv_datagram
skb_set_owner_w
skb_store_bits
skb_trim
sk_free
skip_spaces
smp_call_function
smp_call_function_single
@ -2015,8 +2089,22 @@
snd_soc_unregister_component
snprintf
soc_device_register
sock_alloc_send_pskb
__sock_create
sock_create_kern
sock_gettstamp
sock_init_data
sock_no_accept
sock_no_listen
sock_no_mmap
sock_no_sendpage
sock_no_shutdown
sock_no_socketpair
sock_queue_rcv_skb_reason
sock_register
sock_release
sock_setsockopt
sock_unregister
sock_wfree
softnet_data
sort
@ -2054,6 +2142,7 @@
strcasecmp
strcat
strchr
strchrnul
strcmp
strcpy
strcspn
@ -2456,6 +2545,7 @@
unregister_netdevice_many
unregister_netdevice_notifier
unregister_netdevice_queue
unregister_netevent_notifier
unregister_oom_notifier
unregister_pernet_device
unregister_pernet_subsys
@ -2604,6 +2694,7 @@
vring_del_virtqueue
vring_interrupt
vring_new_virtqueue
vscnprintf
vsnprintf
vunmap
vzalloc
@ -2611,6 +2702,7 @@
wait_for_completion
wait_for_completion_interruptible
wait_for_completion_interruptible_timeout
wait_for_completion_killable
wait_for_completion_timeout
wait_woken
__wake_up
@ -2628,6 +2720,7 @@
watchdog_set_restart_priority
watchdog_unregister_device
wireless_nlevent_flush
wireless_send_event
woken_wake_function
work_busy
__write_overflow_field
@ -2639,11 +2732,13 @@
xa_find
xa_find_after
xa_get_mark
__xa_insert
xa_load
xa_set_mark
xas_find
xas_pause
__xa_store
xa_store
__xfrm_state_destroy
xfrm_state_lookup_byspi
xfrm_stateonly_find

View File

@ -341,3 +341,7 @@
#required by zram.ko
bioset_init
bioset_exit
#required by mi_asap.ko
__traceiter_android_vh_read_pages
__tracepoint_android_vh_read_pages

View File

@ -312,6 +312,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_unregister);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_thermal_zone_device);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_power_cap);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_enable_thermal_power_throttle);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_read_pages);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_reclaim_bypass);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_failure_bypass);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_pageout_swap_entry);

View File

@ -50,13 +50,55 @@ config PHY_QCOM_PCIE2
Enable this to support the Qualcomm PCIe PHY, used with the Synopsys
based PCIe controller.
config PHY_QCOM_QMP
tristate "Qualcomm QMP PHY Driver"
menuconfig PHY_QCOM_QMP
tristate "Qualcomm QMP PHY Drivers"
depends on OF && COMMON_CLK && (ARCH_QCOM || COMPILE_TEST)
if PHY_QCOM_QMP
config PHY_QCOM_QMP_COMBO
tristate "Qualcomm QMP Combo PHY Driver"
default PHY_QCOM_QMP
select GENERIC_PHY
help
Enable this to support the QMP PHY transceiver that is used
with controllers such as PCIe, UFS, and USB on Qualcomm chips.
Enable this to support the QMP Combo PHY transceiver that is used
with USB3 and DisplayPort controllers on Qualcomm chips.
config PHY_QCOM_QMP_PCIE
tristate "Qualcomm QMP PCIe PHY Driver"
depends on PCI || COMPILE_TEST
select GENERIC_PHY
default PHY_QCOM_QMP
help
Enable this to support the QMP PCIe PHY transceiver that is used
with PCIe controllers on Qualcomm chips.
config PHY_QCOM_QMP_PCIE_8996
tristate "Qualcomm QMP PCIe 8996 PHY Driver"
depends on PCI || COMPILE_TEST
select GENERIC_PHY
default PHY_QCOM_QMP
help
Enable this to support the QMP PCIe PHY transceiver that is used
with PCIe controllers on Qualcomm msm8996 chips.
config PHY_QCOM_QMP_UFS
tristate "Qualcomm QMP UFS PHY Driver"
select GENERIC_PHY
default PHY_QCOM_QMP
help
Enable this to support the QMP UFS PHY transceiver that is used
with UFS controllers on Qualcomm chips.
config PHY_QCOM_QMP_USB
tristate "Qualcomm QMP USB PHY Driver"
select GENERIC_PHY
default PHY_QCOM_QMP
help
Enable this to support the QMP USB PHY transceiver that is used
with USB3 controllers on Qualcomm chips.
endif # PHY_QCOM_QMP
config PHY_QCOM_QUSB2
tristate "Qualcomm QUSB2 PHY Driver"

View File

@ -5,12 +5,12 @@ obj-$(CONFIG_PHY_QCOM_EDP) += phy-qcom-edp.o
obj-$(CONFIG_PHY_QCOM_IPQ4019_USB) += phy-qcom-ipq4019-usb.o
obj-$(CONFIG_PHY_QCOM_IPQ806X_SATA) += phy-qcom-ipq806x-sata.o
obj-$(CONFIG_PHY_QCOM_PCIE2) += phy-qcom-pcie2.o
obj-$(CONFIG_PHY_QCOM_QMP) += \
phy-qcom-qmp-combo.o \
phy-qcom-qmp-pcie.o \
phy-qcom-qmp-pcie-msm8996.o \
phy-qcom-qmp-ufs.o \
phy-qcom-qmp-usb.o
obj-$(CONFIG_PHY_QCOM_QMP_COMBO) += phy-qcom-qmp-combo.o
obj-$(CONFIG_PHY_QCOM_QMP_PCIE) += phy-qcom-qmp-pcie.o
obj-$(CONFIG_PHY_QCOM_QMP_PCIE_8996) += phy-qcom-qmp-pcie-msm8996.o
obj-$(CONFIG_PHY_QCOM_QMP_UFS) += phy-qcom-qmp-ufs.o
obj-$(CONFIG_PHY_QCOM_QMP_USB) += phy-qcom-qmp-usb.o
obj-$(CONFIG_PHY_QCOM_QUSB2) += phy-qcom-qusb2.o
obj-$(CONFIG_PHY_QCOM_USB_HS) += phy-qcom-usb-hs.o

View File

@ -76,6 +76,9 @@ struct slabinfo;
DECLARE_HOOK(android_vh_cache_show,
TP_PROTO(struct seq_file *m, struct slabinfo *sinfo, struct kmem_cache *s),
TP_ARGS(m, sinfo, s));
DECLARE_HOOK(android_vh_read_pages,
TP_PROTO(struct readahead_control *ractl),
TP_ARGS(ractl));
DECLARE_HOOK(android_vh_alloc_pages_reclaim_bypass,
TP_PROTO(gfp_t gfp_mask, int order, int alloc_flags,
int migratetype, struct page **page),

View File

@ -567,7 +567,8 @@
* @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC
* (for the BSSID) and %NL80211_ATTR_PMKID or using %NL80211_ATTR_SSID,
* %NL80211_ATTR_FILS_CACHE_ID, and %NL80211_ATTR_PMKID in case of FILS
* authentication.
* authentication. Additionally in case of SAE offload and OWE offloads
* PMKSA entry can be deleted using %NL80211_ATTR_SSID.
* @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries.
*
* @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain

View File

@ -438,6 +438,9 @@ struct page *__cma_alloc(struct cma *cma, unsigned long count,
int ret = -ENOMEM;
int num_attempts = 0;
int max_retries = 5;
const char *name = cma ? cma->name : NULL;
trace_cma_alloc_start(name, count, align);
if (WARN_ON_ONCE((gfp_mask & GFP_KERNEL) == 0 ||
(gfp_mask & ~(GFP_KERNEL|__GFP_NOWARN|__GFP_NORETRY)) != 0))
@ -452,8 +455,6 @@ struct page *__cma_alloc(struct cma *cma, unsigned long count,
if (!count)
goto out;
trace_cma_alloc_start(cma->name, count, align);
mask = cma_bitmap_aligned_mask(cma, align);
offset = cma_bitmap_aligned_offset(cma, align);
bitmap_maxno = cma_bitmap_maxno(cma);
@ -522,8 +523,6 @@ struct page *__cma_alloc(struct cma *cma, unsigned long count,
start = bitmap_no + mask + 1;
}
trace_cma_alloc_finish(cma->name, pfn, page, count, align);
/*
* CMA can allocate multiple page blocks, which results in different
* blocks being marked with different tags. Reset the tags to ignore
@ -542,6 +541,7 @@ struct page *__cma_alloc(struct cma *cma, unsigned long count,
pr_debug("%s(): returned %p\n", __func__, page);
out:
trace_cma_alloc_finish(name, pfn, page, count, align);
if (page) {
count_vm_event(CMA_ALLOC_SUCCESS);
cma_sysfs_account_success_pages(cma, count);

View File

@ -167,6 +167,7 @@ static void read_pages(struct readahead_control *rac)
psi_memstall_enter(&rac->_pflags);
blk_start_plug(&plug);
trace_android_vh_read_pages(rac);
if (aops->readahead) {
aops->readahead(rac);
/*

View File

@ -12017,16 +12017,18 @@ static int nl80211_wiphy_netns(struct sk_buff *skb, struct genl_info *info)
return err;
}
static int nl80211_setdel_pmksa(struct sk_buff *skb, struct genl_info *info)
static int nl80211_set_pmksa(struct sk_buff *skb, struct genl_info *info)
{
struct cfg80211_registered_device *rdev = info->user_ptr[0];
int (*rdev_ops)(struct wiphy *wiphy, struct net_device *dev,
struct cfg80211_pmksa *pmksa) = NULL;
struct net_device *dev = info->user_ptr[1];
struct cfg80211_pmksa pmksa;
bool ap_pmksa_caching_support = false;
memset(&pmksa, 0, sizeof(struct cfg80211_pmksa));
ap_pmksa_caching_support = wiphy_ext_feature_isset(&rdev->wiphy,
NL80211_EXT_FEATURE_AP_PMKSA_CACHING);
if (!info->attrs[NL80211_ATTR_PMKID])
return -EINVAL;
@ -12035,16 +12037,15 @@ static int nl80211_setdel_pmksa(struct sk_buff *skb, struct genl_info *info)
if (info->attrs[NL80211_ATTR_MAC]) {
pmksa.bssid = nla_data(info->attrs[NL80211_ATTR_MAC]);
} else if (info->attrs[NL80211_ATTR_SSID] &&
info->attrs[NL80211_ATTR_FILS_CACHE_ID] &&
(info->genlhdr->cmd == NL80211_CMD_DEL_PMKSA ||
info->attrs[NL80211_ATTR_PMK])) {
info->attrs[NL80211_ATTR_FILS_CACHE_ID] &&
info->attrs[NL80211_ATTR_PMK]) {
pmksa.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]);
pmksa.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]);
pmksa.cache_id =
nla_data(info->attrs[NL80211_ATTR_FILS_CACHE_ID]);
pmksa.cache_id = nla_data(info->attrs[NL80211_ATTR_FILS_CACHE_ID]);
} else {
return -EINVAL;
}
if (info->attrs[NL80211_ATTR_PMK]) {
pmksa.pmk = nla_data(info->attrs[NL80211_ATTR_PMK]);
pmksa.pmk_len = nla_len(info->attrs[NL80211_ATTR_PMK]);
@ -12056,32 +12057,71 @@ static int nl80211_setdel_pmksa(struct sk_buff *skb, struct genl_info *info)
if (info->attrs[NL80211_ATTR_PMK_REAUTH_THRESHOLD])
pmksa.pmk_reauth_threshold =
nla_get_u8(
info->attrs[NL80211_ATTR_PMK_REAUTH_THRESHOLD]);
nla_get_u8(info->attrs[NL80211_ATTR_PMK_REAUTH_THRESHOLD]);
if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_STATION &&
dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT &&
!(dev->ieee80211_ptr->iftype == NL80211_IFTYPE_AP &&
wiphy_ext_feature_isset(&rdev->wiphy,
NL80211_EXT_FEATURE_AP_PMKSA_CACHING)))
!((dev->ieee80211_ptr->iftype == NL80211_IFTYPE_AP ||
dev->ieee80211_ptr->iftype == NL80211_IFTYPE_P2P_GO) &&
ap_pmksa_caching_support))
return -EOPNOTSUPP;
switch (info->genlhdr->cmd) {
case NL80211_CMD_SET_PMKSA:
rdev_ops = rdev->ops->set_pmksa;
break;
case NL80211_CMD_DEL_PMKSA:
rdev_ops = rdev->ops->del_pmksa;
break;
default:
WARN_ON(1);
break;
if (!rdev->ops->set_pmksa)
return -EOPNOTSUPP;
return rdev_set_pmksa(rdev, dev, &pmksa);
}
static int nl80211_del_pmksa(struct sk_buff *skb, struct genl_info *info)
{
struct cfg80211_registered_device *rdev = info->user_ptr[0];
struct net_device *dev = info->user_ptr[1];
struct cfg80211_pmksa pmksa;
bool sae_offload_support = false;
bool owe_offload_support = false;
bool ap_pmksa_caching_support = false;
memset(&pmksa, 0, sizeof(struct cfg80211_pmksa));
sae_offload_support = wiphy_ext_feature_isset(&rdev->wiphy,
NL80211_EXT_FEATURE_SAE_OFFLOAD);
owe_offload_support = wiphy_ext_feature_isset(&rdev->wiphy,
NL80211_EXT_FEATURE_OWE_OFFLOAD);
ap_pmksa_caching_support = wiphy_ext_feature_isset(&rdev->wiphy,
NL80211_EXT_FEATURE_AP_PMKSA_CACHING);
if (info->attrs[NL80211_ATTR_PMKID])
pmksa.pmkid = nla_data(info->attrs[NL80211_ATTR_PMKID]);
if (info->attrs[NL80211_ATTR_MAC]) {
pmksa.bssid = nla_data(info->attrs[NL80211_ATTR_MAC]);
} else if (info->attrs[NL80211_ATTR_SSID]) {
/* SSID based pmksa flush suppported only for FILS,
* OWE/SAE OFFLOAD cases
*/
if (info->attrs[NL80211_ATTR_FILS_CACHE_ID] &&
info->attrs[NL80211_ATTR_PMK]) {
pmksa.cache_id = nla_data(info->attrs[NL80211_ATTR_FILS_CACHE_ID]);
} else if (!sae_offload_support && !owe_offload_support) {
return -EINVAL;
}
pmksa.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]);
pmksa.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]);
} else {
return -EINVAL;
}
if (!rdev_ops)
if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_STATION &&
dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT &&
!((dev->ieee80211_ptr->iftype == NL80211_IFTYPE_AP ||
dev->ieee80211_ptr->iftype == NL80211_IFTYPE_P2P_GO) &&
ap_pmksa_caching_support))
return -EOPNOTSUPP;
return rdev_ops(&rdev->wiphy, dev, &pmksa);
if (!rdev->ops->del_pmksa)
return -EOPNOTSUPP;
return rdev_del_pmksa(rdev, dev, &pmksa);
}
static int nl80211_flush_pmksa(struct sk_buff *skb, struct genl_info *info)
@ -16817,7 +16857,7 @@ static const struct genl_small_ops nl80211_small_ops[] = {
{
.cmd = NL80211_CMD_SET_PMKSA,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
.doit = nl80211_setdel_pmksa,
.doit = nl80211_set_pmksa,
.flags = GENL_UNS_ADMIN_PERM,
.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
NL80211_FLAG_CLEAR_SKB),
@ -16825,7 +16865,7 @@ static const struct genl_small_ops nl80211_small_ops[] = {
{
.cmd = NL80211_CMD_DEL_PMKSA,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
.doit = nl80211_setdel_pmksa,
.doit = nl80211_del_pmksa,
.flags = GENL_UNS_ADMIN_PERM,
.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
},