Merge branch 'android12-5.10' into android12-5.10-lts
Sync up with android12-5.10 for the following commits:1ba7c99bd3
ANDROID: cpufreq: times: record fast switch frequency transitions45ebb9628e
ANDROID: GKI: add required symbols for btusb to virtual device06d074249f
ANDROID: arm64: add vendor hooks for bti and pauth fault129e04dc19
FROMLIST: drivers: thermal: Reset previous low and high trip during thermal zone initf72f41f50c
UPSTREAM: mm: vmalloc: prevent use after free in _vm_unmap_aliases68a3d0062d
ANDROID: ABI: update allowed list for galaxyfb247ebba9
ANDROID: Add android_vh_rproc_recovery_set14eae186e4
ANDROID: rproc: Add vendor hook when setting recovery mode56cc81bb39
BACKPORT: FROMLIST: scsi: ufs: Fix a deadlock in the error handlerff748ee298
BACKPORT: FROMLIST: scsi: core: Reserve one tag for the UFS driver94ca15ec92
BACKPORT: FROMLIST: scsi: ufs: Limit the queue depth to host->can_queue5b87b8d669
ANDROID: GKI: fix up abi breakage from "cfg80211: fix management registrations locking"a7d87a08b4
UPSTREAM: cfg80211: fix management registrations lockingdd78ccadc4
ANDROID: GKI: Update symbol list for VIVO8c9d9d8e44
FROMGIT: usb: gadget: f_mass_storage: Disable eps during disconnectcde1d53cc9
FROMGIT: usb: gadget: udc: core: Revise comments for USB ep enable/disablee35a305d19
UPSTREAM: tracing/cfi: Fix cmp_entries_* functions signature mismatch335046583c
FROMGIT: scsi: ufshpb: Do not report victim error in HCMe2766208d7
FROMGIT: scsi: ufshpb: Verify that num_inflight_map_req is non-negative193f33d061
FROMGIT: scsi: ufshpb: Use a correct max multi chunkd054108519
FROMGIT: scsi: ufshpb: rewind the read timeout on every read8c2c4d12bb
ANDROID: sched: Add vendor hooks for sync_entity_load_avg2cfefe22b9
ANDROID: GKI: Add symbols to abi_gki_aarch64_oplus Resolves conflicts in: drivers/scsi/hosts.c Due to api additions in android12-5.10, this also adds more api symbols to track: Leaf changes summary: 34 artifacts changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 28 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 6 Added variables 28 Added functions: [A] 'function sk_buff* __hci_cmd_sync(hci_dev*, u16, u32, void*, u32)' [A] 'function sk_buff* __hci_cmd_sync_ev(hci_dev*, u16, u32, void*, u8, u32)' [A] 'function int __traceiter_android_vh_blk_alloc_rqs(void*, size_t*, blk_mq_tag_set*, blk_mq_tags*)' [A] 'function int __traceiter_android_vh_blk_rq_ctx_init(void*, request*, blk_mq_tags*, blk_mq_alloc_data*, u64)' [A] 'function int __traceiter_android_vh_mm_dirty_limits(void*, dirty_throttle_control* const, bool, unsigned long int, unsigned long int, unsigned long int, unsigned long int)' [A] 'function int __traceiter_android_vh_rproc_recovery_set(void*, rproc*)' [A] 'function int bit_wait_timeout(wait_bit_key*, int)' [A] 'function int bt_to_errno(__u16)' [A] 'function void bt_warn(const char*, ...)' [A] 'function int btbcm_set_bdaddr(hci_dev*, const bdaddr_t*)' [A] 'function int btbcm_setup_apple(hci_dev*)' [A] 'function int btbcm_setup_patchram(hci_dev*)' [A] 'function int cgroup_add_legacy_cftypes(cgroup_subsys*, cftype*)' [A] 'function void gpiod_put(gpio_desc*)' [A] 'function sk_buff* hci_cmd_sync(hci_dev*, u16, u32, void*, u32)' [A] 'function int hci_recv_diag(hci_dev*, sk_buff*)' [A] 'function int kern_path(const char*, unsigned int, path*)' [A] 'function int kstrtos16(const char*, unsigned int, s16*)' [A] 'function mem_cgroup* mem_cgroup_from_id(unsigned short int)' [A] 'function int out_of_line_wait_on_bit_timeout(void*, int, wait_bit_action_f*, unsigned int, unsigned long int)' [A] 'function void path_put(const path*)' [A] 'function void unregister_memory_notifier(notifier_block*)' [A] 'function int usb_driver_claim_interface(usb_driver*, usb_interface*, void*)' [A] 'function void usb_driver_release_interface(usb_driver*, usb_interface*)' [A] 'function urb* usb_get_from_anchor(usb_anchor*)' [A] 'function void usb_queue_reset_device(usb_interface*)' [A] 'function void usb_scuttle_anchored_urbs(usb_anchor*)' [A] 'function void wake_up_bit(void*, int)' 6 Added variables: [A] 'tracepoint __tracepoint_android_vh_blk_alloc_rqs' [A] 'tracepoint __tracepoint_android_vh_blk_rq_ctx_init' [A] 'tracepoint __tracepoint_android_vh_mm_dirty_limits' [A] 'tracepoint __tracepoint_android_vh_rproc_recovery_set' [A] 'cgroup_subsys memory_cgrp_subsys' [A] 'static_key_true memory_cgrp_subsys_enabled_key' Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: Id2c3ae3d700bbe5567c0840dc4e2acff9bba246e
This commit is contained in:
commit
be686d451e
File diff suppressed because it is too large
Load Diff
@ -2354,6 +2354,9 @@
|
||||
irq_work_sync
|
||||
is_dma_buf_file
|
||||
is_vmalloc_addr
|
||||
iwe_stream_add_event
|
||||
iwe_stream_add_point
|
||||
iwe_stream_add_value
|
||||
jiffies
|
||||
jiffies64_to_msecs
|
||||
jiffies_64_to_clock_t
|
||||
@ -2362,6 +2365,7 @@
|
||||
kasan_flag_enabled
|
||||
kasprintf
|
||||
kern_mount
|
||||
kern_path
|
||||
kern_unmount
|
||||
kernel_bind
|
||||
kernel_connect
|
||||
@ -2430,6 +2434,7 @@
|
||||
kstrtoint_from_user
|
||||
kstrtol_from_user
|
||||
kstrtoll
|
||||
kstrtos16
|
||||
kstrtos8
|
||||
kstrtos8_from_user
|
||||
kstrtou16
|
||||
@ -2887,6 +2892,7 @@
|
||||
part_end_io_acct
|
||||
part_start_io_acct
|
||||
passthru_features_check
|
||||
path_put
|
||||
pause_cpus
|
||||
pci_alloc_irq_vectors_affinity
|
||||
pci_assign_resource
|
||||
|
@ -134,6 +134,7 @@
|
||||
cdev_device_del
|
||||
cdev_init
|
||||
__cfi_slowpath
|
||||
cgroup_add_legacy_cftypes
|
||||
cgroup_path_ns
|
||||
cgroup_taskset_first
|
||||
cgroup_taskset_next
|
||||
@ -1421,6 +1422,7 @@
|
||||
memblock_end_of_DRAM
|
||||
__memcat_p
|
||||
memcg_kmem_enabled_key
|
||||
mem_cgroup_from_id
|
||||
memchr
|
||||
memchr_inv
|
||||
memcmp
|
||||
@ -1430,6 +1432,8 @@
|
||||
memdup_user
|
||||
memmove
|
||||
memory_block_size_bytes
|
||||
memory_cgrp_subsys
|
||||
memory_cgrp_subsys_enabled_key
|
||||
memory_read_from_buffer
|
||||
memparse
|
||||
mempool_alloc
|
||||
@ -1575,6 +1579,7 @@
|
||||
of_count_phandle_with_args
|
||||
of_cpufreq_cooling_register
|
||||
of_cpu_node_to_id
|
||||
of_css
|
||||
of_devfreq_cooling_register
|
||||
of_device_get_match_data
|
||||
of_device_is_available
|
||||
@ -2898,6 +2903,7 @@
|
||||
trace_seq_putc
|
||||
tracing_off
|
||||
try_module_get
|
||||
try_to_free_mem_cgroup_pages
|
||||
try_wait_for_completion
|
||||
tty_flip_buffer_push
|
||||
__tty_insert_flip_char
|
||||
@ -2991,6 +2997,7 @@
|
||||
unregister_inetaddr_notifier
|
||||
unregister_kprobe
|
||||
unregister_kretprobe
|
||||
unregister_memory_notifier
|
||||
unregister_module_notifier
|
||||
unregister_netdev
|
||||
unregister_netdevice_many
|
||||
|
@ -2569,6 +2569,7 @@
|
||||
__traceiter_android_vh_logbuf_pr_cont
|
||||
__traceiter_android_vh_printk_hotplug
|
||||
__traceiter_android_vh_rproc_recovery
|
||||
__traceiter_android_vh_rproc_recovery_set
|
||||
__traceiter_android_vh_scheduler_tick
|
||||
__traceiter_android_vh_show_max_freq
|
||||
__traceiter_android_vh_show_resume_epoch_val
|
||||
@ -2686,6 +2687,7 @@
|
||||
__tracepoint_android_vh_psi_event
|
||||
__tracepoint_android_vh_psi_group
|
||||
__tracepoint_android_vh_rproc_recovery
|
||||
__tracepoint_android_vh_rproc_recovery_set
|
||||
__tracepoint_android_vh_scheduler_tick
|
||||
__tracepoint_android_vh_shmem_alloc_page
|
||||
__tracepoint_android_vh_show_max_freq
|
||||
|
@ -34,6 +34,9 @@
|
||||
bpf_trace_run4
|
||||
bpf_trace_run5
|
||||
bpf_trace_run6
|
||||
bt_err
|
||||
bt_info
|
||||
bt_warn
|
||||
bus_register
|
||||
bus_unregister
|
||||
cancel_delayed_work
|
||||
@ -90,6 +93,7 @@
|
||||
device_create
|
||||
device_del
|
||||
device_initialize
|
||||
device_init_wakeup
|
||||
device_register
|
||||
device_release_driver
|
||||
device_unregister
|
||||
@ -145,6 +149,12 @@
|
||||
get_random_bytes
|
||||
get_unused_fd_flags
|
||||
gic_nonsecure_priorities
|
||||
hci_alloc_dev
|
||||
__hci_cmd_sync
|
||||
hci_free_dev
|
||||
hci_recv_frame
|
||||
hci_register_dev
|
||||
hci_unregister_dev
|
||||
hwrng_register
|
||||
hwrng_unregister
|
||||
ida_alloc_range
|
||||
@ -313,6 +323,7 @@
|
||||
pm_runtime_set_autosuspend_delay
|
||||
__pm_runtime_suspend
|
||||
__pm_runtime_use_autosuspend
|
||||
pm_wakeup_dev_event
|
||||
preempt_schedule
|
||||
preempt_schedule_notrace
|
||||
prepare_to_wait
|
||||
@ -490,6 +501,15 @@
|
||||
unregister_virtio_driver
|
||||
up_read
|
||||
up_write
|
||||
usb_alloc_urb
|
||||
usb_anchor_urb
|
||||
usb_control_msg
|
||||
usb_deregister
|
||||
usb_free_urb
|
||||
usb_kill_anchored_urbs
|
||||
usb_register_driver
|
||||
usb_submit_urb
|
||||
usb_unanchor_urb
|
||||
__usecs_to_jiffies
|
||||
usleep_range
|
||||
vabits_actual
|
||||
@ -562,6 +582,46 @@
|
||||
sg_miter_start
|
||||
sg_miter_stop
|
||||
|
||||
# required by btintel.ko
|
||||
bt_to_errno
|
||||
hci_cmd_sync
|
||||
request_firmware_direct
|
||||
|
||||
# required by btusb.ko
|
||||
bit_wait_timeout
|
||||
btbcm_set_bdaddr
|
||||
btbcm_setup_apple
|
||||
btbcm_setup_patchram
|
||||
device_wakeup_disable
|
||||
disable_irq
|
||||
disable_irq_nosync
|
||||
enable_irq
|
||||
gpiod_get_optional
|
||||
gpiod_put
|
||||
gpiod_set_value_cansleep
|
||||
__hci_cmd_sync_ev
|
||||
hci_recv_diag
|
||||
irq_modify_status
|
||||
irq_set_irq_wake
|
||||
of_irq_get_byname
|
||||
of_match_device
|
||||
of_property_read_variable_u16_array
|
||||
out_of_line_wait_on_bit_timeout
|
||||
pm_system_wakeup
|
||||
usb_autopm_get_interface
|
||||
usb_autopm_put_interface
|
||||
usb_bulk_msg
|
||||
usb_driver_claim_interface
|
||||
usb_driver_release_interface
|
||||
usb_enable_autosuspend
|
||||
usb_get_from_anchor
|
||||
usb_ifnum_to_if
|
||||
usb_match_id
|
||||
usb_queue_reset_device
|
||||
usb_scuttle_anchored_urbs
|
||||
usb_set_interface
|
||||
wake_up_bit
|
||||
|
||||
# required by cfg80211.ko
|
||||
bpf_trace_run10
|
||||
bpf_trace_run7
|
||||
@ -669,25 +729,10 @@
|
||||
register_candev
|
||||
unregister_candev
|
||||
usb_alloc_coherent
|
||||
usb_alloc_urb
|
||||
usb_anchor_urb
|
||||
usb_control_msg
|
||||
usb_deregister
|
||||
usb_free_coherent
|
||||
usb_free_urb
|
||||
usb_kill_anchored_urbs
|
||||
usb_register_driver
|
||||
usb_submit_urb
|
||||
usb_unanchor_urb
|
||||
|
||||
# required by hci_vhci.ko
|
||||
bt_err
|
||||
_copy_from_iter_full
|
||||
hci_alloc_dev
|
||||
hci_free_dev
|
||||
hci_recv_frame
|
||||
hci_register_dev
|
||||
hci_unregister_dev
|
||||
|
||||
# required by ledtrig-audio.ko
|
||||
led_set_brightness_nosleep
|
||||
@ -901,7 +946,6 @@
|
||||
input_mt_sync_frame
|
||||
input_set_capability
|
||||
kstrtou8
|
||||
pm_wakeup_dev_event
|
||||
ps2_begin_command
|
||||
ps2_cmd_aborted
|
||||
ps2_command
|
||||
@ -930,7 +974,6 @@
|
||||
|
||||
# required by rtc-test.ko
|
||||
add_timer
|
||||
device_init_wakeup
|
||||
devm_rtc_allocate_device
|
||||
platform_device_add
|
||||
platform_device_alloc
|
||||
|
@ -54,6 +54,8 @@
|
||||
__bitmap_set
|
||||
blk_alloc_queue
|
||||
blk_bio_list_merge
|
||||
blkcg_policy_register
|
||||
blkcg_policy_unregister
|
||||
blk_cleanup_queue
|
||||
blk_execute_rq
|
||||
blk_execute_rq_nowait
|
||||
@ -1001,6 +1003,7 @@
|
||||
of_count_phandle_with_args
|
||||
of_cpufreq_cooling_register
|
||||
of_cpu_node_to_id
|
||||
of_css
|
||||
of_devfreq_cooling_register
|
||||
of_device_get_match_data
|
||||
of_device_is_available
|
||||
@ -1711,6 +1714,8 @@
|
||||
__traceiter_android_vh_binder_restore_priority
|
||||
__traceiter_android_vh_binder_set_priority
|
||||
__traceiter_android_vh_binder_wakeup_ilocked
|
||||
__traceiter_android_vh_blk_alloc_rqs
|
||||
__traceiter_android_vh_blk_rq_ctx_init
|
||||
__traceiter_android_vh_cpu_idle_enter
|
||||
__traceiter_android_vh_cpu_idle_exit
|
||||
__traceiter_android_vh_filemap_fault_cache_page
|
||||
@ -1728,6 +1733,7 @@
|
||||
__traceiter_android_vh_mmc_blk_mq_rw_recovery
|
||||
__traceiter_android_vh_mmc_blk_reset
|
||||
__traceiter_android_vh_mmc_gpio_cd_irqt
|
||||
__traceiter_android_vh_mm_dirty_limits
|
||||
__traceiter_android_vh_printk_hotplug
|
||||
__traceiter_android_vh_scheduler_tick
|
||||
__traceiter_android_vh_sdhci_get_cd
|
||||
@ -1806,6 +1812,8 @@
|
||||
__tracepoint_android_vh_binder_set_priority
|
||||
__tracepoint_android_vh_binder_trans
|
||||
__tracepoint_android_vh_binder_wakeup_ilocked
|
||||
__tracepoint_android_vh_blk_alloc_rqs
|
||||
__tracepoint_android_vh_blk_rq_ctx_init
|
||||
__tracepoint_android_vh_cpu_idle_enter
|
||||
__tracepoint_android_vh_cpu_idle_exit
|
||||
__tracepoint_android_vh_dup_task_struct
|
||||
@ -1825,6 +1833,7 @@
|
||||
__tracepoint_android_vh_mmc_blk_mq_rw_recovery
|
||||
__tracepoint_android_vh_mmc_blk_reset
|
||||
__tracepoint_android_vh_mmc_gpio_cd_irqt
|
||||
__tracepoint_android_vh_mm_dirty_limits
|
||||
__tracepoint_android_vh_printk_hotplug
|
||||
__tracepoint_android_vh_scheduler_tick
|
||||
__tracepoint_android_vh_sdhci_get_cd
|
||||
|
@ -414,6 +414,7 @@ NOKPROBE_SYMBOL(do_undefinstr);
|
||||
|
||||
void do_bti(struct pt_regs *regs)
|
||||
{
|
||||
trace_android_rvh_do_bti(regs, user_mode(regs));
|
||||
BUG_ON(!user_mode(regs));
|
||||
force_signal_inject(SIGILL, ILL_ILLOPC, regs->pc, 0);
|
||||
}
|
||||
@ -425,6 +426,7 @@ void do_ptrauth_fault(struct pt_regs *regs, unsigned int esr)
|
||||
* Unexpected FPAC exception or pointer authentication failure in
|
||||
* the kernel: kill the task before it does any more harm.
|
||||
*/
|
||||
trace_android_rvh_do_ptrauth_fault(regs, esr, user_mode(regs));
|
||||
BUG_ON(!user_mode(regs));
|
||||
force_signal_inject(SIGILL, ILL_ILLOPN, regs->pc, esr);
|
||||
}
|
||||
|
@ -243,6 +243,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_mutex_list_add);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_unlock_slowpath);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_undefinstr);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_bti);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_ptrauth_fault);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_bad_mode);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_arm64_serror_panic);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_selinux_avc_insert);
|
||||
@ -364,6 +366,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_force_compatible_post);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_print_transaction_info);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_setscheduler_uclamp);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery_set);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ptype_head);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kfree_skb);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_mmap_file);
|
||||
|
@ -2106,6 +2106,7 @@ unsigned int cpufreq_driver_fast_switch(struct cpufreq_policy *policy,
|
||||
arch_set_freq_scale(policy->related_cpus, freq,
|
||||
policy->cpuinfo.max_freq);
|
||||
cpufreq_stats_record_transition(policy, freq);
|
||||
cpufreq_times_record_transition(policy, freq);
|
||||
trace_android_rvh_cpufreq_transition(policy);
|
||||
|
||||
if (trace_cpu_frequency_enabled()) {
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
#include <linux/remoteproc.h>
|
||||
#include <linux/slab.h>
|
||||
#include <trace/hooks/remoteproc.h>
|
||||
|
||||
#include "remoteproc_internal.h"
|
||||
|
||||
@ -51,9 +52,11 @@ static ssize_t recovery_store(struct device *dev,
|
||||
if (sysfs_streq(buf, "enabled")) {
|
||||
/* change the flag and begin the recovery process if needed */
|
||||
rproc->recovery_disabled = false;
|
||||
trace_android_vh_rproc_recovery_set(rproc);
|
||||
rproc_trigger_recovery(rproc);
|
||||
} else if (sysfs_streq(buf, "disabled")) {
|
||||
rproc->recovery_disabled = true;
|
||||
trace_android_vh_rproc_recovery_set(rproc);
|
||||
} else if (sysfs_streq(buf, "recover")) {
|
||||
/* begin the recovery process without changing the flag */
|
||||
rproc_trigger_recovery(rproc);
|
||||
|
@ -220,10 +220,6 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev,
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* Use min_t(int, ...) in case shost->can_queue exceeds SHRT_MAX */
|
||||
shost->cmd_per_lun = min_t(int, shost->cmd_per_lun,
|
||||
shost->can_queue);
|
||||
|
||||
error = scsi_init_sense_cache(shost);
|
||||
if (error)
|
||||
goto fail;
|
||||
@ -232,6 +228,12 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev,
|
||||
if (error)
|
||||
goto fail;
|
||||
|
||||
shost->can_queue = shost->tag_set.queue_depth;
|
||||
|
||||
/* Use min_t(int, ...) in case shost->can_queue exceeds SHRT_MAX */
|
||||
shost->cmd_per_lun = min_t(int, shost->cmd_per_lun,
|
||||
shost->can_queue);
|
||||
|
||||
if (!shost->shost_gendev.parent)
|
||||
shost->shost_gendev.parent = dev ? dev : &platform_bus;
|
||||
if (!dma_dev)
|
||||
|
@ -1909,6 +1909,10 @@ int scsi_mq_setup_tags(struct Scsi_Host *shost)
|
||||
tag_set->ops = &scsi_mq_ops_no_commit;
|
||||
tag_set->nr_hw_queues = shost->nr_hw_queues ? : 1;
|
||||
tag_set->queue_depth = shost->can_queue;
|
||||
if (shost->hostt->name && strcmp(shost->hostt->name, "ufshcd") == 0) {
|
||||
tag_set->queue_depth--;
|
||||
tag_set->reserved_tags++;
|
||||
}
|
||||
tag_set->cmd_size = cmd_size;
|
||||
tag_set->numa_node = NUMA_NO_NODE;
|
||||
tag_set->flags = BLK_MQ_F_SHOULD_MERGE;
|
||||
|
@ -2931,12 +2931,7 @@ static int ufshcd_exec_dev_cmd(struct ufs_hba *hba,
|
||||
|
||||
down_read(&hba->clk_scaling_lock);
|
||||
|
||||
/*
|
||||
* Get free slot, sleep if slots are unavailable.
|
||||
* Even though we use wait_event() which sleeps indefinitely,
|
||||
* the maximum wait time is bounded by SCSI request timeout.
|
||||
*/
|
||||
req = blk_get_request(q, REQ_OP_DRV_OUT, 0);
|
||||
req = blk_mq_alloc_request(q, REQ_OP_DRV_OUT, BLK_MQ_REQ_RESERVED);
|
||||
if (IS_ERR(req)) {
|
||||
err = PTR_ERR(req);
|
||||
goto out_unlock;
|
||||
@ -4903,11 +4898,7 @@ static int ufshcd_slave_alloc(struct scsi_device *sdev)
|
||||
*/
|
||||
static int ufshcd_change_queue_depth(struct scsi_device *sdev, int depth)
|
||||
{
|
||||
struct ufs_hba *hba = shost_priv(sdev->host);
|
||||
|
||||
if (depth > hba->nutrs)
|
||||
depth = hba->nutrs;
|
||||
return scsi_change_queue_depth(sdev, depth);
|
||||
return scsi_change_queue_depth(sdev, min(depth, sdev->host->can_queue));
|
||||
}
|
||||
|
||||
static void ufshcd_hpb_destroy(struct ufs_hba *hba, struct scsi_device *sdev)
|
||||
|
@ -184,9 +184,19 @@ static void ufshpb_iterate_rgn(struct ufshpb_lu *hpb, int rgn_idx, int srgn_idx,
|
||||
set_bit_len = cnt;
|
||||
|
||||
spin_lock_irqsave(&hpb->rgn_state_lock, flags);
|
||||
if (set_dirty && rgn->rgn_state != HPB_RGN_INACTIVE &&
|
||||
srgn->srgn_state == HPB_SRGN_VALID)
|
||||
bitmap_set(srgn->mctx->ppn_dirty, srgn_offset, set_bit_len);
|
||||
if (rgn->rgn_state != HPB_RGN_INACTIVE) {
|
||||
if (set_dirty) {
|
||||
if (srgn->srgn_state == HPB_SRGN_VALID)
|
||||
bitmap_set(srgn->mctx->ppn_dirty, srgn_offset,
|
||||
set_bit_len);
|
||||
} else if (hpb->is_hcm) {
|
||||
/* rewind the read timer for lru regions */
|
||||
rgn->read_timeout = ktime_add_ms(ktime_get(),
|
||||
rgn->hpb->params.read_timeout_ms);
|
||||
rgn->read_timeout_expiries =
|
||||
rgn->hpb->params.read_timeout_expiries;
|
||||
}
|
||||
}
|
||||
spin_unlock_irqrestore(&hpb->rgn_state_lock, flags);
|
||||
|
||||
if (hpb->is_hcm && prev_srgn != srgn) {
|
||||
@ -753,6 +763,7 @@ static struct ufshpb_req *ufshpb_get_map_req(struct ufshpb_lu *hpb,
|
||||
{
|
||||
struct ufshpb_req *map_req;
|
||||
struct bio *bio;
|
||||
unsigned long flags;
|
||||
|
||||
if (hpb->is_hcm &&
|
||||
hpb->num_inflight_map_req >= hpb->params.inflight_map_req) {
|
||||
@ -777,7 +788,10 @@ static struct ufshpb_req *ufshpb_get_map_req(struct ufshpb_lu *hpb,
|
||||
|
||||
map_req->rb.srgn_idx = srgn->srgn_idx;
|
||||
map_req->rb.mctx = srgn->mctx;
|
||||
|
||||
spin_lock_irqsave(&hpb->param_lock, flags);
|
||||
hpb->num_inflight_map_req++;
|
||||
spin_unlock_irqrestore(&hpb->param_lock, flags);
|
||||
|
||||
return map_req;
|
||||
}
|
||||
@ -785,9 +799,14 @@ static struct ufshpb_req *ufshpb_get_map_req(struct ufshpb_lu *hpb,
|
||||
static void ufshpb_put_map_req(struct ufshpb_lu *hpb,
|
||||
struct ufshpb_req *map_req)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
bio_put(map_req->bio);
|
||||
ufshpb_put_req(hpb, map_req);
|
||||
|
||||
spin_lock_irqsave(&hpb->param_lock, flags);
|
||||
hpb->num_inflight_map_req--;
|
||||
spin_unlock_irqrestore(&hpb->param_lock, flags);
|
||||
}
|
||||
|
||||
static int ufshpb_clear_dirty_bitmap(struct ufshpb_lu *hpb,
|
||||
@ -1372,7 +1391,8 @@ static int ufshpb_add_region(struct ufshpb_lu *hpb, struct ufshpb_region *rgn)
|
||||
victim_rgn = ufshpb_victim_lru_info(hpb);
|
||||
if (!victim_rgn) {
|
||||
dev_warn(&hpb->sdev_ufs_lu->sdev_dev,
|
||||
"cannot get victim region error\n");
|
||||
"cannot get victim region %s\n",
|
||||
hpb->is_hcm ? "" : "error");
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
@ -2386,6 +2406,7 @@ static int ufshpb_lu_hpb_init(struct ufs_hba *hba, struct ufshpb_lu *hpb)
|
||||
|
||||
spin_lock_init(&hpb->rgn_state_lock);
|
||||
spin_lock_init(&hpb->rsp_list_lock);
|
||||
spin_lock_init(&hpb->param_lock);
|
||||
|
||||
INIT_LIST_HEAD(&hpb->lru_info.lh_lru_rgn);
|
||||
INIT_LIST_HEAD(&hpb->lh_act_srgn);
|
||||
|
@ -32,7 +32,7 @@
|
||||
/* hpb support chunk size */
|
||||
#define HPB_LEGACY_CHUNK_HIGH 1
|
||||
#define HPB_MULTI_CHUNK_LOW 7
|
||||
#define HPB_MULTI_CHUNK_HIGH 256
|
||||
#define HPB_MULTI_CHUNK_HIGH 255
|
||||
|
||||
/* hpb vender defined opcode */
|
||||
#define UFSHPB_READ 0xF8
|
||||
@ -237,7 +237,9 @@ struct ufshpb_lu {
|
||||
struct ufshpb_req *pre_req;
|
||||
int num_inflight_pre_req;
|
||||
int throttle_pre_req;
|
||||
int num_inflight_map_req;
|
||||
int num_inflight_map_req; /* hold param_lock */
|
||||
spinlock_t param_lock;
|
||||
|
||||
struct list_head lh_pre_req_free;
|
||||
int cur_read_id;
|
||||
int pre_req_min_tr_len;
|
||||
|
@ -476,6 +476,8 @@ static void thermal_zone_device_init(struct thermal_zone_device *tz)
|
||||
{
|
||||
struct thermal_instance *pos;
|
||||
tz->temperature = THERMAL_TEMP_INVALID;
|
||||
tz->prev_low_trip = -INT_MAX;
|
||||
tz->prev_high_trip = INT_MAX;
|
||||
list_for_each_entry(pos, &tz->thermal_instances, tz_node)
|
||||
pos->initialized = false;
|
||||
}
|
||||
|
@ -2301,6 +2301,16 @@ static void fsg_disable(struct usb_function *f)
|
||||
{
|
||||
struct fsg_dev *fsg = fsg_from_func(f);
|
||||
|
||||
/* Disable the endpoints */
|
||||
if (fsg->bulk_in_enabled) {
|
||||
usb_ep_disable(fsg->bulk_in);
|
||||
fsg->bulk_in_enabled = 0;
|
||||
}
|
||||
if (fsg->bulk_out_enabled) {
|
||||
usb_ep_disable(fsg->bulk_out);
|
||||
fsg->bulk_out_enabled = 0;
|
||||
}
|
||||
|
||||
__raise_exception(fsg->common, FSG_STATE_CONFIG_CHANGE, NULL);
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,7 @@ EXPORT_SYMBOL_GPL(usb_ep_set_maxpacket_limit);
|
||||
* configurable, with more generic names like "ep-a". (remember that for
|
||||
* USB, "in" means "towards the USB host".)
|
||||
*
|
||||
* This routine must be called in process context.
|
||||
* This routine may be called in an atomic (interrupt) context.
|
||||
*
|
||||
* returns zero, or a negative error code.
|
||||
*/
|
||||
@ -134,7 +134,7 @@ EXPORT_SYMBOL_GPL(usb_ep_enable);
|
||||
* gadget drivers must call usb_ep_enable() again before queueing
|
||||
* requests to the endpoint.
|
||||
*
|
||||
* This routine must be called in process context.
|
||||
* This routine may be called in an atomic (interrupt) context.
|
||||
*
|
||||
* returns zero, or a negative error code.
|
||||
*/
|
||||
|
@ -12,10 +12,16 @@
|
||||
|
||||
struct rproc;
|
||||
|
||||
/* When recovery succeeds */
|
||||
DECLARE_HOOK(android_vh_rproc_recovery,
|
||||
TP_PROTO(struct rproc *rproc),
|
||||
TP_ARGS(rproc));
|
||||
|
||||
/* When recovery mode is enabled or disabled by sysfs */
|
||||
DECLARE_HOOK(android_vh_rproc_recovery_set,
|
||||
TP_PROTO(struct rproc *rproc),
|
||||
TP_ARGS(rproc));
|
||||
|
||||
#endif /* _TRACE_HOOK_RPROC_H */
|
||||
/* This part must be outside protection */
|
||||
#include <trace/define_trace.h>
|
||||
|
@ -17,6 +17,16 @@ DECLARE_RESTRICTED_HOOK(android_rvh_do_undefinstr,
|
||||
TP_ARGS(regs, user),
|
||||
TP_CONDITION(!user));
|
||||
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_do_bti,
|
||||
TP_PROTO(struct pt_regs *regs, bool user),
|
||||
TP_ARGS(regs, user),
|
||||
TP_CONDITION(!user));
|
||||
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_do_ptrauth_fault,
|
||||
TP_PROTO(struct pt_regs *regs, unsigned int esr, bool user),
|
||||
TP_ARGS(regs, esr, user),
|
||||
TP_CONDITION(!user));
|
||||
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_bad_mode,
|
||||
TP_PROTO(struct pt_regs *regs, unsigned int esr, int reason),
|
||||
TP_ARGS(regs, reason, esr), 1);
|
||||
|
@ -3871,7 +3871,9 @@ static void sync_entity_load_avg(struct sched_entity *se)
|
||||
u64 last_update_time;
|
||||
|
||||
last_update_time = cfs_rq_last_update_time(cfs_rq);
|
||||
trace_android_vh_prepare_update_load_avg_se(se, 0);
|
||||
__update_load_avg_blocked_se(last_update_time, se);
|
||||
trace_android_vh_finish_update_load_avg_se(se, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -834,29 +834,35 @@ int tracing_map_init(struct tracing_map *map)
|
||||
return err;
|
||||
}
|
||||
|
||||
static int cmp_entries_dup(const struct tracing_map_sort_entry **a,
|
||||
const struct tracing_map_sort_entry **b)
|
||||
static int cmp_entries_dup(const void *A, const void *B)
|
||||
{
|
||||
const struct tracing_map_sort_entry *a, *b;
|
||||
int ret = 0;
|
||||
|
||||
if (memcmp((*a)->key, (*b)->key, (*a)->elt->map->key_size))
|
||||
a = *(const struct tracing_map_sort_entry **)A;
|
||||
b = *(const struct tracing_map_sort_entry **)B;
|
||||
|
||||
if (memcmp(a->key, b->key, a->elt->map->key_size))
|
||||
ret = 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int cmp_entries_sum(const struct tracing_map_sort_entry **a,
|
||||
const struct tracing_map_sort_entry **b)
|
||||
static int cmp_entries_sum(const void *A, const void *B)
|
||||
{
|
||||
const struct tracing_map_elt *elt_a, *elt_b;
|
||||
const struct tracing_map_sort_entry *a, *b;
|
||||
struct tracing_map_sort_key *sort_key;
|
||||
struct tracing_map_field *field;
|
||||
tracing_map_cmp_fn_t cmp_fn;
|
||||
void *val_a, *val_b;
|
||||
int ret = 0;
|
||||
|
||||
elt_a = (*a)->elt;
|
||||
elt_b = (*b)->elt;
|
||||
a = *(const struct tracing_map_sort_entry **)A;
|
||||
b = *(const struct tracing_map_sort_entry **)B;
|
||||
|
||||
elt_a = a->elt;
|
||||
elt_b = b->elt;
|
||||
|
||||
sort_key = &elt_a->map->sort_key;
|
||||
|
||||
@ -873,18 +879,21 @@ static int cmp_entries_sum(const struct tracing_map_sort_entry **a,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int cmp_entries_key(const struct tracing_map_sort_entry **a,
|
||||
const struct tracing_map_sort_entry **b)
|
||||
static int cmp_entries_key(const void *A, const void *B)
|
||||
{
|
||||
const struct tracing_map_elt *elt_a, *elt_b;
|
||||
const struct tracing_map_sort_entry *a, *b;
|
||||
struct tracing_map_sort_key *sort_key;
|
||||
struct tracing_map_field *field;
|
||||
tracing_map_cmp_fn_t cmp_fn;
|
||||
void *val_a, *val_b;
|
||||
int ret = 0;
|
||||
|
||||
elt_a = (*a)->elt;
|
||||
elt_b = (*b)->elt;
|
||||
a = *(const struct tracing_map_sort_entry **)A;
|
||||
b = *(const struct tracing_map_sort_entry **)B;
|
||||
|
||||
elt_a = a->elt;
|
||||
elt_b = b->elt;
|
||||
|
||||
sort_key = &elt_a->map->sort_key;
|
||||
|
||||
@ -989,10 +998,8 @@ static void sort_secondary(struct tracing_map *map,
|
||||
struct tracing_map_sort_key *primary_key,
|
||||
struct tracing_map_sort_key *secondary_key)
|
||||
{
|
||||
int (*primary_fn)(const struct tracing_map_sort_entry **,
|
||||
const struct tracing_map_sort_entry **);
|
||||
int (*secondary_fn)(const struct tracing_map_sort_entry **,
|
||||
const struct tracing_map_sort_entry **);
|
||||
int (*primary_fn)(const void *, const void *);
|
||||
int (*secondary_fn)(const void *, const void *);
|
||||
unsigned i, start = 0, n_sub = 1;
|
||||
|
||||
if (is_key(map, primary_key->field_idx))
|
||||
@ -1061,8 +1068,7 @@ int tracing_map_sort_entries(struct tracing_map *map,
|
||||
unsigned int n_sort_keys,
|
||||
struct tracing_map_sort_entry ***sort_entries)
|
||||
{
|
||||
int (*cmp_entries_fn)(const struct tracing_map_sort_entry **,
|
||||
const struct tracing_map_sort_entry **);
|
||||
int (*cmp_entries_fn)(const void *, const void *);
|
||||
struct tracing_map_sort_entry *sort_entry, **entries;
|
||||
int i, n_entries, ret;
|
||||
|
||||
|
@ -1749,7 +1749,7 @@ static void _vm_unmap_aliases(unsigned long start, unsigned long end, int flush)
|
||||
rcu_read_lock();
|
||||
list_for_each_entry_rcu(vb, &vbq->free, free_list) {
|
||||
spin_lock(&vb->lock);
|
||||
if (vb->dirty) {
|
||||
if (vb->dirty && vb->dirty != VMAP_BBMAP_BITS) {
|
||||
unsigned long va_start = vb->va->va_start;
|
||||
unsigned long s, e;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user