mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 15:11:48 -04:00
Merge "qcacmn: Unified scheduler watchdog handler implementation"
This commit is contained in:
commit
8967ce71a8
2 changed files with 14 additions and 19 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2014-2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2014-2020 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
@ -3242,7 +3242,7 @@ static void set_default_trace_levels(struct category_info *cinfo)
|
|||
[QDF_MODULE_ID_SOC] = QDF_TRACE_LEVEL_NONE,
|
||||
[QDF_MODULE_ID_OS_IF] = QDF_TRACE_LEVEL_NONE,
|
||||
[QDF_MODULE_ID_TARGET_IF] = QDF_TRACE_LEVEL_INFO,
|
||||
[QDF_MODULE_ID_SCHEDULER] = QDF_TRACE_LEVEL_NONE,
|
||||
[QDF_MODULE_ID_SCHEDULER] = QDF_TRACE_LEVEL_FATAL,
|
||||
[QDF_MODULE_ID_MGMT_TXRX] = QDF_TRACE_LEVEL_NONE,
|
||||
[QDF_MODULE_ID_SERIALIZATION] = QDF_TRACE_LEVEL_ERROR,
|
||||
[QDF_MODULE_ID_PMO] = QDF_TRACE_LEVEL_NONE,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2014-2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2014-2020 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
@ -54,12 +54,12 @@ static inline void scheduler_watchdog_notify(struct scheduler_ctx *sched)
|
|||
if (sched->watchdog_callback)
|
||||
qdf_sprint_symbol(symbol, sched->watchdog_callback);
|
||||
|
||||
sched_err("WLAN_BUG_RCA: Callback %s (type 0x%x) exceeded its allotted time of %ds",
|
||||
sched->watchdog_callback ? symbol : "<null>",
|
||||
sched->watchdog_msg_type, SCHEDULER_WATCHDOG_TIMEOUT / 1000);
|
||||
sched_fatal("Callback %s (type 0x%x) exceeded its allotted time of %ds",
|
||||
sched->watchdog_callback ? symbol : "<null>",
|
||||
sched->watchdog_msg_type,
|
||||
SCHEDULER_WATCHDOG_TIMEOUT / 1000);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SLUB_DEBUG_ON
|
||||
static void scheduler_watchdog_timeout(void *arg)
|
||||
{
|
||||
struct scheduler_ctx *sched = arg;
|
||||
|
|
@ -74,12 +74,6 @@ static void scheduler_watchdog_timeout(void *arg)
|
|||
|
||||
QDF_DEBUG_PANIC("Going down for Scheduler Watchdog Bite!");
|
||||
}
|
||||
#else
|
||||
static void scheduler_watchdog_timeout(void *arg)
|
||||
{
|
||||
scheduler_watchdog_notify((struct scheduler_ctx *)arg);
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS scheduler_enable(void)
|
||||
{
|
||||
|
|
@ -101,7 +95,7 @@ QDF_STATUS scheduler_enable(void)
|
|||
sched_ctx->sch_thread = qdf_create_thread(scheduler_thread, sched_ctx,
|
||||
"scheduler_thread");
|
||||
if (!sched_ctx->sch_thread) {
|
||||
sched_err("Failed to create scheduler thread");
|
||||
sched_fatal("Failed to create scheduler thread");
|
||||
return QDF_STATUS_E_RESOURCES;
|
||||
}
|
||||
|
||||
|
|
@ -125,7 +119,7 @@ QDF_STATUS scheduler_init(void)
|
|||
|
||||
status = scheduler_create_ctx();
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
sched_err("Failed to create context; status:%d", status);
|
||||
sched_fatal("Failed to create context; status:%d", status);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
@ -138,25 +132,26 @@ QDF_STATUS scheduler_init(void)
|
|||
|
||||
status = scheduler_queues_init(sched_ctx);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
sched_err("Failed to init queues; status:%d", status);
|
||||
sched_fatal("Failed to init queues; status:%d", status);
|
||||
goto ctx_destroy;
|
||||
}
|
||||
|
||||
status = qdf_event_create(&sched_ctx->sch_start_event);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
sched_err("Failed to create start event; status:%d", status);
|
||||
sched_fatal("Failed to create start event; status:%d", status);
|
||||
goto queues_deinit;
|
||||
}
|
||||
|
||||
status = qdf_event_create(&sched_ctx->sch_shutdown);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
sched_err("Failed to create shutdown event; status:%d", status);
|
||||
sched_fatal("Failed to create shutdown event; status:%d",
|
||||
status);
|
||||
goto start_event_destroy;
|
||||
}
|
||||
|
||||
status = qdf_event_create(&sched_ctx->resume_sch_event);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
sched_err("Failed to create resume event; status:%d", status);
|
||||
sched_fatal("Failed to create resume event; status:%d", status);
|
||||
goto shutdown_event_destroy;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue