| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|---|
| 1 | 2 | #ifndef _ASM_POWERPC_CURRENT_H |
|---|
| 2 | 3 | #define _ASM_POWERPC_CURRENT_H |
|---|
| 3 | 4 | #ifdef __KERNEL__ |
|---|
| 4 | 5 | |
|---|
| 5 | 6 | /* |
|---|
| 6 | | - * This program is free software; you can redistribute it and/or |
|---|
| 7 | | - * modify it under the terms of the GNU General Public License |
|---|
| 8 | | - * as published by the Free Software Foundation; either version |
|---|
| 9 | | - * 2 of the License, or (at your option) any later version. |
|---|
| 10 | 7 | */ |
|---|
| 11 | 8 | |
|---|
| 12 | 9 | struct task_struct; |
|---|
| .. | .. |
|---|
| 19 | 16 | { |
|---|
| 20 | 17 | struct task_struct *task; |
|---|
| 21 | 18 | |
|---|
| 22 | | - __asm__ __volatile__("ld %0,%1(13)" |
|---|
| 19 | + /* get_current can be cached by the compiler, so no volatile */ |
|---|
| 20 | + asm ("ld %0,%1(13)" |
|---|
| 23 | 21 | : "=r" (task) |
|---|
| 24 | 22 | : "i" (offsetof(struct paca_struct, __current))); |
|---|
| 25 | 23 | |
|---|