diff --git a/Documentation/ABI/testing/sysfs-fs-f2fs b/Documentation/ABI/testing/sysfs-fs-f2fs index 3d1f853c6681..759a8291ff4a 100644 --- a/Documentation/ABI/testing/sysfs-fs-f2fs +++ b/Documentation/ABI/testing/sysfs-fs-f2fs @@ -113,6 +113,11 @@ Contact: "Jaegeuk Kim" Description: Set timeout to issue discard commands during umount. Default: 5 secs +What: /sys/fs/f2fs//pending_discard +Date: November 2021 +Contact: "Jaegeuk Kim" +Description: Shows the number of pending discard commands in the queue. + What: /sys/fs/f2fs//max_victim_search Date: January 2014 Contact: "Jaegeuk Kim" diff --git a/android/ACK_SHA b/android/ACK_SHA index 8eda619cb9bd..021f00b1b54f 100644 --- a/android/ACK_SHA +++ b/android/ACK_SHA @@ -1 +1 @@ -32432740cdec38674c3134c678b3b269f48d1ed8 +672d51b2a7fa01a15c9d55f33884808a115db18d diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 37986a0c2b77..05df1e0ec177 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -370,6 +370,7 @@ + @@ -1049,6 +1050,8 @@ + + @@ -4222,6 +4225,7 @@ + @@ -5813,6 +5817,7 @@ + @@ -6905,6 +6910,7 @@ + @@ -23289,7 +23295,7 @@ - + @@ -24512,6 +24518,7 @@ + @@ -30883,6 +30890,9 @@ + + + @@ -33564,7 +33574,7 @@ - + @@ -35806,6 +35816,10 @@ + + + + @@ -57829,7 +57843,7 @@ - + @@ -64892,9 +64906,6 @@ - - - @@ -75238,11 +75249,7 @@ - - - - - + @@ -112205,7 +112212,7 @@ - + @@ -115246,17 +115253,17 @@ - - - - + + + + - - - - - + + + + + @@ -115265,12 +115272,12 @@ - - - - - - + + + + + + @@ -115289,6 +115296,16 @@ + + + + + + + + + + @@ -116804,12 +116821,13 @@ - - + + - + + @@ -119527,6 +119545,19 @@ + + + + + + + + + + + + + @@ -135861,6 +135892,12 @@ + + + + + + diff --git a/android/abi_gki_aarch64_imx b/android/abi_gki_aarch64_imx index d9b45b8fc993..fdff2573a2fc 100644 --- a/android/abi_gki_aarch64_imx +++ b/android/abi_gki_aarch64_imx @@ -67,6 +67,7 @@ clk_set_parent clk_set_rate clk_unprepare + clockevents_config_and_register complete complete_all completion_done @@ -590,6 +591,7 @@ of_alias_get_id of_clk_add_hw_provider of_clk_get + of_clk_get_by_name of_clk_hw_onecell_get of_count_phandle_with_args of_device_get_match_data @@ -911,6 +913,7 @@ tasklet_init tasklet_kill __tasklet_schedule + timer_of_init trace_event_buffer_commit trace_event_buffer_reserve trace_event_ignore_this_pid @@ -1822,7 +1825,6 @@ clk_unregister divider_get_val divider_recalc_rate - of_clk_get_by_name of_clk_get_from_provider # required by mxc-jpeg-encdec.ko @@ -2236,9 +2238,10 @@ dmabuf_page_pool_destroy dmabuf_page_pool_free -# required by timer-imx-sysctr.ko - clockevents_config_and_register - timer_of_init +# required by timer-imx-tpm.ko + clocksource_mmio_init + clocksource_mmio_readl_up + sched_clock_register # required by trusty-ipc.ko _copy_from_iter diff --git a/android/abi_gki_aarch64_oplus b/android/abi_gki_aarch64_oplus index 9afce39e651c..d1b0509ddd52 100644 --- a/android/abi_gki_aarch64_oplus +++ b/android/abi_gki_aarch64_oplus @@ -2590,6 +2590,7 @@ __traceiter_android_vh_binder_proc_transaction __traceiter_android_vh_binder_preset __traceiter_android_vh_binder_priority_skip + __traceiter_android_vh_binder_proc_transaction_end __traceiter_android_vh_binder_reply __traceiter_android_vh_binder_restore_priority __traceiter_android_vh_binder_set_priority @@ -2784,6 +2785,7 @@ __tracepoint_android_vh_binder_proc_transaction __tracepoint_android_vh_binder_preset __tracepoint_android_vh_binder_priority_skip + __tracepoint_android_vh_binder_proc_transaction_end __tracepoint_android_vh_binder_reply __tracepoint_android_vh_binder_restore_priority __tracepoint_android_vh_binder_set_priority diff --git a/drivers/android/binder.c b/drivers/android/binder.c index c845c1f8a695..dabfb68c66e2 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -2529,6 +2529,9 @@ static int binder_proc_transaction(struct binder_transaction *t, binder_enqueue_work_ilocked(&t->work, &node->async_todo); } + trace_android_vh_binder_proc_transaction_end(current, proc->tsk, + thread ? thread->task : NULL, t->code, pending_async, !oneway); + if (!pending_async) binder_wakeup_thread_ilocked(proc, thread, !oneway /* sync */); diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 17f42e726b55..3f6157a125c4 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -293,6 +293,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_trans); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_binder_transaction); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_preset); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_new_ref); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_del_ref); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_post_init_entity_util_avg); diff --git a/drivers/clocksource/mmio.c b/drivers/clocksource/mmio.c index 9de751531831..826dcc42629c 100644 --- a/drivers/clocksource/mmio.c +++ b/drivers/clocksource/mmio.c @@ -21,6 +21,7 @@ u64 clocksource_mmio_readl_up(struct clocksource *c) { return (u64)readl_relaxed(to_mmio_clksrc(c)->reg); } +EXPORT_SYMBOL_GPL(clocksource_mmio_readl_up); u64 clocksource_mmio_readl_down(struct clocksource *c) { @@ -46,7 +47,7 @@ u64 clocksource_mmio_readw_down(struct clocksource *c) * @bits: Number of valid bits * @read: One of clocksource_mmio_read*() above */ -int __init clocksource_mmio_init(void __iomem *base, const char *name, +int clocksource_mmio_init(void __iomem *base, const char *name, unsigned long hz, int rating, unsigned bits, u64 (*read)(struct clocksource *)) { @@ -68,3 +69,4 @@ int __init clocksource_mmio_init(void __iomem *base, const char *name, return clocksource_register_hz(&cs->clksrc, hz); } +EXPORT_SYMBOL_GPL(clocksource_mmio_init); diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c index 15fe30d3aeb5..78c6c67b43d7 100644 --- a/fs/f2fs/sysfs.c +++ b/fs/f2fs/sysfs.c @@ -117,6 +117,15 @@ static ssize_t sb_status_show(struct f2fs_attr *a, return sprintf(buf, "%lx\n", sbi->s_flag); } +static ssize_t pending_discard_show(struct f2fs_attr *a, + struct f2fs_sb_info *sbi, char *buf) +{ + if (!SM_I(sbi)->dcc_info) + return -EINVAL; + return sprintf(buf, "%llu\n", (unsigned long long)atomic_read( + &SM_I(sbi)->dcc_info->discard_cmd_cnt)); +} + static ssize_t features_show(struct f2fs_attr *a, struct f2fs_sb_info *sbi, char *buf) { @@ -713,6 +722,7 @@ F2FS_GENERAL_RO_ATTR(unusable); F2FS_GENERAL_RO_ATTR(encoding); F2FS_GENERAL_RO_ATTR(mounted_time_sec); F2FS_GENERAL_RO_ATTR(main_blkaddr); +F2FS_GENERAL_RO_ATTR(pending_discard); #ifdef CONFIG_F2FS_STAT_FS F2FS_STAT_ATTR(STAT_INFO, f2fs_stat_info, cp_foreground_calls, cp_count); F2FS_STAT_ATTR(STAT_INFO, f2fs_stat_info, cp_background_calls, bg_cp_count); @@ -778,6 +788,7 @@ static struct attribute *f2fs_attrs[] = { ATTR_LIST(main_blkaddr), ATTR_LIST(max_small_discards), ATTR_LIST(discard_granularity), + ATTR_LIST(pending_discard), ATTR_LIST(batched_trim_sections), ATTR_LIST(ipu_policy), ATTR_LIST(min_ipu_util), diff --git a/include/trace/hooks/binder.h b/include/trace/hooks/binder.h index 36a70248f5cf..16dd0a2a6514 100644 --- a/include/trace/hooks/binder.h +++ b/include/trace/hooks/binder.h @@ -64,6 +64,11 @@ DECLARE_HOOK(android_vh_binder_proc_transaction, struct task_struct *binder_th_task, int node_debug_id, unsigned int code, bool pending_async), TP_ARGS(caller_task, binder_proc_task, binder_th_task, node_debug_id, code, pending_async)); +DECLARE_HOOK(android_vh_binder_proc_transaction_end, + TP_PROTO(struct task_struct *caller_task, struct task_struct *binder_proc_task, + struct task_struct *binder_th_task, unsigned int code, + bool pending_async, bool sync), + TP_ARGS(caller_task, binder_proc_task, binder_th_task, code, pending_async, sync)); DECLARE_HOOK(android_vh_binder_new_ref, TP_PROTO(struct task_struct *proc, uint32_t ref_desc, int node_debug_id), TP_ARGS(proc, ref_desc, node_debug_id)); diff --git a/kernel/time/sched_clock.c b/kernel/time/sched_clock.c index d5ab3fbc191c..6740dd02a402 100644 --- a/kernel/time/sched_clock.c +++ b/kernel/time/sched_clock.c @@ -150,8 +150,7 @@ static enum hrtimer_restart sched_clock_poll(struct hrtimer *hrt) return HRTIMER_RESTART; } -void __init -sched_clock_register(u64 (*read)(void), int bits, unsigned long rate) +void sched_clock_register(u64 (*read)(void), int bits, unsigned long rate) { u64 res, wrap, new_mask, new_epoch, cyc, ns; u32 new_mult, new_shift; @@ -225,6 +224,7 @@ sched_clock_register(u64 (*read)(void), int bits, unsigned long rate) pr_debug("Registered %pS as sched_clock source\n", read); } +EXPORT_SYMBOL_GPL(sched_clock_register); void __init generic_sched_clock_init(void) { diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 6e15757cc073..4d09cece5cb9 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -4898,6 +4898,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task) mutex_unlock(&wq_pool_attach_mutex); } +EXPORT_SYMBOL_GPL(wq_worker_comm); #ifdef CONFIG_SMP diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 148c095df27b..f4b380d6aecf 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c @@ -2528,9 +2528,20 @@ static struct snd_soc_dapm_widget *dapm_find_widget( { struct snd_soc_dapm_widget *w; struct snd_soc_dapm_widget *fallback = NULL; + char prefixed_pin[80]; + const char *pin_name; + const char *prefix = soc_dapm_prefix(dapm); + + if (prefix) { + snprintf(prefixed_pin, sizeof(prefixed_pin), "%s %s", + prefix, pin); + pin_name = prefixed_pin; + } else { + pin_name = pin; + } for_each_card_widgets(dapm->card, w) { - if (!strcmp(w->name, pin)) { + if (!strcmp(w->name, pin_name)) { if (w->dapm == dapm) return w; else