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