| .. | .. |
|---|
| 1 | 1 | // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note |
|---|
| 2 | 2 | /* |
|---|
| 3 | 3 | * |
|---|
| 4 | | - * (C) COPYRIGHT 2020-2021 ARM Limited. All rights reserved. |
|---|
| 4 | + * (C) COPYRIGHT 2020-2022 ARM Limited. All rights reserved. |
|---|
| 5 | 5 | * |
|---|
| 6 | 6 | * This program is free software and is provided to you under the terms of the |
|---|
| 7 | 7 | * GNU General Public License version 2 as published by the Free Software |
|---|
| .. | .. |
|---|
| 27 | 27 | #if KBASE_KTRACE_TARGET_RBUF |
|---|
| 28 | 28 | struct kbase_ktrace_msg *rbuf; |
|---|
| 29 | 29 | |
|---|
| 30 | + spin_lock_init(&kbdev->ktrace.lock); |
|---|
| 30 | 31 | rbuf = kmalloc_array(KBASE_KTRACE_SIZE, sizeof(*rbuf), GFP_KERNEL); |
|---|
| 31 | 32 | |
|---|
| 32 | 33 | if (!rbuf) |
|---|
| 33 | 34 | return -EINVAL; |
|---|
| 34 | 35 | |
|---|
| 35 | 36 | kbdev->ktrace.rbuf = rbuf; |
|---|
| 36 | | - spin_lock_init(&kbdev->ktrace.lock); |
|---|
| 37 | 37 | #endif /* KBASE_KTRACE_TARGET_RBUF */ |
|---|
| 38 | 38 | return 0; |
|---|
| 39 | 39 | } |
|---|
| .. | .. |
|---|
| 42 | 42 | { |
|---|
| 43 | 43 | #if KBASE_KTRACE_TARGET_RBUF |
|---|
| 44 | 44 | kfree(kbdev->ktrace.rbuf); |
|---|
| 45 | + kbdev->ktrace.rbuf = NULL; |
|---|
| 45 | 46 | #endif /* KBASE_KTRACE_TARGET_RBUF */ |
|---|
| 46 | 47 | } |
|---|
| 47 | 48 | |
|---|
| .. | .. |
|---|
| 183 | 184 | unsigned long irqflags; |
|---|
| 184 | 185 | struct kbase_ktrace_msg *trace_msg; |
|---|
| 185 | 186 | |
|---|
| 187 | + if (unlikely(!kbasep_ktrace_initialized(&kbdev->ktrace))) |
|---|
| 188 | + return; |
|---|
| 189 | + |
|---|
| 186 | 190 | WARN_ON((flags & ~KBASE_KTRACE_FLAG_COMMON_ALL)); |
|---|
| 187 | 191 | |
|---|
| 188 | 192 | spin_lock_irqsave(&kbdev->ktrace.lock, irqflags); |
|---|