Merge tag 'LA.UM.9.14.r1-23800-LAHAINA.QSSI14.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina
"LA.UM.9.14.r1-23800-LAHAINA.QSSI14.0" * tag 'LA.UM.9.14.r1-23800-LAHAINA.QSSI14.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4: qcom-dload-mode: Convert reboot notifier to restart notifier defconfig: sdxlemur: Enable minidump for sdxlemur soc: qcom: Don't print thread info for arm arch soc: qcom: dcc_v2: Fix slab-out-of-bounds issue in dcc driver rpmsg: slatecom: Discard unaligned packet to read soc: qcom: peripheral-loader: Add KPI marker input: misc: Validate input pattern count in pattern_s_dbgfs_write BACKPORT: media: venus: hfi: fix the check in session buffer requirement BACKPORT: media: venus: hfi: add checks to perform sanity on queue pointers net: qrtr: smd: kfree svc_arr after use Conflicts: drivers/devfreq/devfreq.c drivers/rpmsg/qcom_glink_slatecom.c include/net/tcp.h Change-Id: If26696f886bf78d4d77e36a7266fabc0ceba7a85
This commit is contained in:
commit
ca99e36dea
@ -1 +1 @@
|
||||
LTS_5.4.254_d43ac48de222
|
||||
LTS_5.4.259_81334f26ac70
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2062,6 +2062,7 @@
|
||||
rpmsg_set_signals
|
||||
rpmsg_trysend
|
||||
rpmsg_unregister_device
|
||||
rpmsg_register_device_override
|
||||
rtc_add_group
|
||||
rtc_class_close
|
||||
rtc_class_open
|
||||
|
@ -38,3 +38,4 @@ CONFIG_BUG_ON_DATA_CORRUPTION=y
|
||||
CONFIG_DEBUG_CREDENTIALS=y
|
||||
CONFIG_QCOM_MEMORY_DUMP_V2=y
|
||||
CONFIG_LKDTM=m
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
|
3
arch/arm/configs/vendor/sdxlemur.config
vendored
3
arch/arm/configs/vendor/sdxlemur.config
vendored
@ -350,6 +350,8 @@ CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE_DEFAULT=y
|
||||
CONFIG_POWER_RESET_QCOM_REBOOT_REASON=y
|
||||
CONFIG_POWER_RESET_MSM=y
|
||||
CONFIG_QCOM_MINIDUMP=y
|
||||
CONFIG_QCOM_MINIDUMP_FTRACE=y
|
||||
CONFIG_QCOM_MINIDUMP_PANIC_DUMP=y
|
||||
CONFIG_ENABLE_SFE=y
|
||||
# CONFIG_ENABLE_VMALLOC_SAVING is not set
|
||||
# CONFIG_SLUB_DEBUG is not set
|
||||
@ -510,3 +512,4 @@ CONFIG_ANDROID_BINDER_IPC=y
|
||||
CONFIG_ANDROID_BINDERFS=y
|
||||
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
|
||||
# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
|
||||
CONFIG_IPC_LOG_MINIDUMP_BUFFERS=16
|
||||
|
@ -595,8 +595,8 @@ static void devfreq_dev_release(struct device *dev)
|
||||
devfreq->profile->exit(devfreq->dev.parent);
|
||||
|
||||
mutex_destroy(&devfreq->lock);
|
||||
srcu_cleanup_notifier_head(&devfreq->transition_notifier_list);
|
||||
event_mutex_destroy(devfreq);
|
||||
srcu_cleanup_notifier_head(&devfreq->transition_notifier_list);
|
||||
kfree(devfreq);
|
||||
}
|
||||
|
||||
|
@ -1229,6 +1229,7 @@ static void qcom_scm_shutdown(struct platform_device *pdev)
|
||||
{
|
||||
qcom_scm_disable_sdi();
|
||||
qcom_scm_halt_spmi_pmic_arbiter();
|
||||
/* Clean shutdown, disable download mode to allow normal restart */
|
||||
qcom_scm_set_download_mode(QCOM_DOWNLOAD_NODUMP, 0);
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/atomic.h>
|
||||
@ -3035,6 +3035,11 @@ static ssize_t pattern_s_dbgfs_write(struct file *fp,
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (i >= ARRAY_SIZE(tmp)) {
|
||||
pr_err("too many patterns in input string\n");
|
||||
rc = -EINVAL;
|
||||
goto exit;
|
||||
}
|
||||
tmp[i++] = val;
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ enum qcom_download_dest {
|
||||
|
||||
struct qcom_dload {
|
||||
struct notifier_block panic_nb;
|
||||
struct notifier_block reboot_nb;
|
||||
struct notifier_block restart_nb;
|
||||
struct kobject kobj;
|
||||
|
||||
bool in_panic;
|
||||
@ -251,28 +251,15 @@ static int qcom_dload_panic(struct notifier_block *this, unsigned long event,
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
static int qcom_dload_reboot(struct notifier_block *this, unsigned long event,
|
||||
static int qcom_dload_restart(struct notifier_block *this, unsigned long event,
|
||||
void *ptr)
|
||||
{
|
||||
char *cmd = ptr;
|
||||
struct qcom_dload *poweroff = container_of(this, struct qcom_dload,
|
||||
reboot_nb);
|
||||
|
||||
/* Clean shutdown, disable dump mode to allow normal restart */
|
||||
if (!poweroff->in_panic)
|
||||
set_download_mode(QCOM_DOWNLOAD_NODUMP);
|
||||
|
||||
if (cmd) {
|
||||
if (!strcmp(cmd, "edl")) {
|
||||
early_pcie_init_enable ? set_download_mode(QCOM_EDLOAD_PCI_MODE)
|
||||
: set_download_mode(QCOM_DOWNLOAD_EDL);
|
||||
}
|
||||
else if (!strcmp(cmd, "qcom_dload"))
|
||||
msm_enable_dump_mode(true);
|
||||
}
|
||||
|
||||
if (current_download_mode != QCOM_DOWNLOAD_NODUMP)
|
||||
if (cmd && !strcmp(cmd, "edl")) {
|
||||
set_download_mode(QCOM_DOWNLOAD_EDL);
|
||||
reboot_mode = REBOOT_WARM;
|
||||
}
|
||||
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
@ -381,9 +368,14 @@ static int qcom_dload_probe(struct platform_device *pdev)
|
||||
atomic_notifier_chain_register(&panic_notifier_list,
|
||||
&poweroff->panic_nb);
|
||||
|
||||
poweroff->reboot_nb.notifier_call = qcom_dload_reboot;
|
||||
poweroff->reboot_nb.priority = 255;
|
||||
register_reboot_notifier(&poweroff->reboot_nb);
|
||||
poweroff->restart_nb.notifier_call = qcom_dload_restart;
|
||||
/* Here, Restart handler priority should be higher than
|
||||
* of restart handler present in scm driver so that
|
||||
* reboot_mode set by this handler seen by SCM's one
|
||||
* for EDL mode.
|
||||
*/
|
||||
poweroff->restart_nb.priority = 131;
|
||||
register_restart_handler(&poweroff->restart_nb);
|
||||
|
||||
platform_set_drvdata(pdev, poweroff);
|
||||
|
||||
@ -396,7 +388,7 @@ static int qcom_dload_remove(struct platform_device *pdev)
|
||||
|
||||
atomic_notifier_chain_unregister(&panic_notifier_list,
|
||||
&poweroff->panic_nb);
|
||||
unregister_reboot_notifier(&poweroff->reboot_nb);
|
||||
unregister_restart_handler(&poweroff->restart_nb);
|
||||
|
||||
if (poweroff->dload_dest_addr)
|
||||
iounmap(poweroff->dload_dest_addr);
|
||||
|
@ -612,7 +612,7 @@ static bool is_dcc_enabled(struct dcc_drvdata *drvdata)
|
||||
bool dcc_enable = false;
|
||||
int list;
|
||||
|
||||
for (list = 0; list < DCC_MAX_LINK_LIST; list++) {
|
||||
for (list = 0; list < drvdata->nr_link_list; list++) {
|
||||
if (drvdata->enable[list]) {
|
||||
dcc_enable = true;
|
||||
break;
|
||||
|
@ -656,10 +656,16 @@ static void md_dump_task_info(struct task_struct *task, char *status,
|
||||
|
||||
se = &task->se;
|
||||
if (task == curr) {
|
||||
#ifdef CONFIG_ARM64
|
||||
seq_buf_printf(md_runq_seq_buf,
|
||||
"[status: curr] pid: %d comm: %s preempt: %#x\n",
|
||||
task_pid_nr(task), task->comm,
|
||||
task->thread_info.preempt_count);
|
||||
#else
|
||||
seq_buf_printf(md_runq_seq_buf,
|
||||
"[status: curr] pid: %d comm: %s\n",
|
||||
task_pid_nr(task), task->comm);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -383,6 +383,10 @@ static int pil_do_minidump(struct pil_desc *desc, void *ramdump_dev)
|
||||
pil_err(desc, "%s: Minidump collection failed for subsys %s rc:%d\n",
|
||||
__func__, desc->name, ret);
|
||||
|
||||
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
|
||||
if (!strcmp(desc->name, "modem"))
|
||||
update_marker("M - Modem Dump completed");
|
||||
#endif
|
||||
if (desc->subsys_vmid > 0)
|
||||
ret = pil_assign_mem_to_subsys(desc, priv->region_start,
|
||||
(priv->region_end - priv->region_start));
|
||||
|
@ -362,6 +362,7 @@ extern int tcp_proc_delayed_ack_control(struct ctl_table *table, int write,
|
||||
void __user *buffer, size_t *length,
|
||||
loff_t *ppos);
|
||||
|
||||
void tcp_enter_quickack_mode(struct sock *sk, unsigned int max_quickacks);
|
||||
static inline void tcp_dec_quickack_mode(struct sock *sk)
|
||||
{
|
||||
struct inet_connection_sock *icsk = inet_csk(sk);
|
||||
|
@ -236,7 +236,7 @@ static void tcp_incr_quickack(struct sock *sk, unsigned int max_quickacks)
|
||||
icsk->icsk_ack.quick = quickacks;
|
||||
}
|
||||
|
||||
static void tcp_enter_quickack_mode(struct sock *sk, unsigned int max_quickacks)
|
||||
void tcp_enter_quickack_mode(struct sock *sk, unsigned int max_quickacks)
|
||||
{
|
||||
struct inet_connection_sock *icsk = inet_csk(sk);
|
||||
|
||||
|
@ -93,6 +93,7 @@ static int qcom_smd_qrtr_probe(struct rpmsg_device *rpdev)
|
||||
svc_arr, size);
|
||||
}
|
||||
rc = qrtr_endpoint_register(&qdev->ep, net_id, rt, svc_arr);
|
||||
kfree(svc_arr);
|
||||
|
||||
if (rc)
|
||||
return rc;
|
||||
|
Loading…
Reference in New Issue
Block a user