mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-03 17:40:04 +00:00
powerpc/audit: Fix syscall_get_arch()
Commit770cec16cd
("powerpc/audit: Simplify syscall_get_arch()") and commit898a1ef06a
("powerpc/audit: Avoid unneccessary #ifdef in syscall_get_arguments()") replaced test_tsk_thread_flag(task, TIF_32BIT)) by is_32bit_task(). But is_32bit_task() applies on current task while be want the test done on task 'task' So add a new macro is_tsk_32bit_task() to check any task. Fixes:770cec16cd
("powerpc/audit: Simplify syscall_get_arch()") Fixes:898a1ef06a
("powerpc/audit: Avoid unneccessary #ifdef in syscall_get_arguments()") Cc: stable@vger.kernel.org Reported-by: Dmitry V. Levin <ldv@altlinux.org> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/c55cddb8f65713bf5859ed675d75a50cb37d5995.1642159570.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
3f5f766d5f
commit
252745240b
2 changed files with 4 additions and 2 deletions
|
@ -90,7 +90,7 @@ static inline void syscall_get_arguments(struct task_struct *task,
|
|||
unsigned long val, mask = -1UL;
|
||||
unsigned int n = 6;
|
||||
|
||||
if (is_32bit_task())
|
||||
if (is_tsk_32bit_task(task))
|
||||
mask = 0xffffffff;
|
||||
|
||||
while (n--) {
|
||||
|
@ -105,7 +105,7 @@ static inline void syscall_get_arguments(struct task_struct *task,
|
|||
|
||||
static inline int syscall_get_arch(struct task_struct *task)
|
||||
{
|
||||
if (is_32bit_task())
|
||||
if (is_tsk_32bit_task(task))
|
||||
return AUDIT_ARCH_PPC;
|
||||
else if (IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN))
|
||||
return AUDIT_ARCH_PPC64LE;
|
||||
|
|
|
@ -168,8 +168,10 @@ static inline bool test_thread_local_flags(unsigned int flags)
|
|||
|
||||
#ifdef CONFIG_COMPAT
|
||||
#define is_32bit_task() (test_thread_flag(TIF_32BIT))
|
||||
#define is_tsk_32bit_task(tsk) (test_tsk_thread_flag(tsk, TIF_32BIT))
|
||||
#else
|
||||
#define is_32bit_task() (IS_ENABLED(CONFIG_PPC32))
|
||||
#define is_tsk_32bit_task(tsk) (IS_ENABLED(CONFIG_PPC32))
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PPC64)
|
||||
|
|
Loading…
Reference in a new issue