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 transitions
45ebb9628e ANDROID: GKI: add required symbols for btusb to virtual device
06d074249f ANDROID: arm64: add vendor hooks for bti and pauth fault
129e04dc19 FROMLIST: drivers: thermal: Reset previous low and high trip during thermal zone init
f72f41f50c UPSTREAM: mm: vmalloc: prevent use after free in _vm_unmap_aliases
68a3d0062d ANDROID: ABI: update allowed list for galaxy
fb247ebba9 ANDROID: Add android_vh_rproc_recovery_set
14eae186e4 ANDROID: rproc: Add vendor hook when setting recovery mode
56cc81bb39 BACKPORT: FROMLIST: scsi: ufs: Fix a deadlock in the error handler
ff748ee298 BACKPORT: FROMLIST: scsi: core: Reserve one tag for the UFS driver
94ca15ec92 BACKPORT: FROMLIST: scsi: ufs: Limit the queue depth to host->can_queue
5b87b8d669 ANDROID: GKI: fix up abi breakage from "cfg80211: fix management registrations locking"
a7d87a08b4 UPSTREAM: cfg80211: fix management registrations locking
dd78ccadc4 ANDROID: GKI: Update symbol list for VIVO
8c9d9d8e44 FROMGIT: usb: gadget: f_mass_storage: Disable eps during disconnect
cde1d53cc9 FROMGIT: usb: gadget: udc: core: Revise comments for USB ep enable/disable
e35a305d19 UPSTREAM: tracing/cfi: Fix cmp_entries_* functions signature mismatch
335046583c FROMGIT: scsi: ufshpb: Do not report victim error in HCM
e2766208d7 FROMGIT: scsi: ufshpb: Verify that num_inflight_map_req is non-negative
193f33d061 FROMGIT: scsi: ufshpb: Use a correct max multi chunk
d054108519 FROMGIT: scsi: ufshpb: rewind the read timeout on every read
8c2c4d12bb ANDROID: sched: Add vendor hooks for sync_entity_load_avg
2cfefe22b9 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:
Greg Kroah-Hartman 2021-11-11 09:10:11 +01:00
commit be686d451e
23 changed files with 808 additions and 457 deletions

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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);

View 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()) {

View File

@ -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);

View File

@ -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)

View File

@ -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;

View File

@ -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)

View File

@ -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);

View File

@ -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;

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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.
*/

View File

@ -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>

View File

@ -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);

View File

@ -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);
}
/*

View File

@ -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;

View File

@ -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;