Message ID | 1398184360.2596.7.camel@flatline.rdu.redhat.com |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
Hi Eric, On Tue, 22 Apr 2014 12:32:40 -0400 Eric Paris <eparis@redhat.com> wrote: > > I swear I saw this and I fixed it. Drat. Do we want to do it this way? > Above in syscall_get_arguments() they use > > #ifdef CONFIG_SPARC64 > if (test_tsk_thread_flag(task, TIF_32BIT)) > zero_extend = 1; > #endif > > Is CONFIG_SPARC64 a better choice than: > defined(__sparc__) && defined(__arch64__) I have no idea, I just copied the test from thread_info.h. > Maybe even better would be to copy what you suggested in powerpc: That would be better, except ... > diff --git a/arch/sparc/include/asm/syscall.h b/arch/sparc/include/asm/syscall.h > index fed3d51..49f71fd 100644 > --- a/arch/sparc/include/asm/syscall.h > +++ b/arch/sparc/include/asm/syscall.h > @@ -128,8 +128,7 @@ static inline void syscall_set_arguments(struct task_struct *task, > > static inline int syscall_get_arch(void) > { > - return test_thread_flag(TIF_32BIT) ? AUDIT_ARCH_SPARC > - : AUDIT_ARCH_SPARC64; > + return is_32bit_task() ? AUDIT_ARCH_SPARC : AUDIT_ARCH_SPARC64; > } > > #endif /* __ASM_SPARC_SYSCALL_H */ > diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h > index 96efa7a..acd2be0 100644 > --- a/arch/sparc/include/asm/thread_info_32.h > +++ b/arch/sparc/include/asm/thread_info_32.h > @@ -130,6 +130,8 @@ register struct thread_info *current_thread_info_reg asm("g6"); > #define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | \ > _TIF_SIGPENDING) > > +#define is_32bit_task() (0) Shouldn't that be (1) ?
diff --git a/arch/sparc/include/asm/syscall.h b/arch/sparc/include/asm/syscall.h index fed3d51..49f71fd 100644 --- a/arch/sparc/include/asm/syscall.h +++ b/arch/sparc/include/asm/syscall.h @@ -128,8 +128,7 @@ static inline void syscall_set_arguments(struct task_struct *task, static inline int syscall_get_arch(void) { - return test_thread_flag(TIF_32BIT) ? AUDIT_ARCH_SPARC - : AUDIT_ARCH_SPARC64; + return is_32bit_task() ? AUDIT_ARCH_SPARC : AUDIT_ARCH_SPARC64; } #endif /* __ASM_SPARC_SYSCALL_H */ diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h index 96efa7a..acd2be0 100644 --- a/arch/sparc/include/asm/thread_info_32.h +++ b/arch/sparc/include/asm/thread_info_32.h @@ -130,6 +130,8 @@ register struct thread_info *current_thread_info_reg asm("g6"); #define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | \ _TIF_SIGPENDING) +#define is_32bit_task() (0) + #endif /* __KERNEL__ */ #endif /* _ASM_THREAD_INFO_H */ diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h index a5f01ac..5a4f660 100644 --- a/arch/sparc/include/asm/thread_info_64.h +++ b/arch/sparc/include/asm/thread_info_64.h @@ -219,6 +219,8 @@ register struct thread_info *current_thread_info_reg asm("g6"); _TIF_NEED_RESCHED) #define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | _TIF_SIGPENDING) +#define is_32bit_task() (test_thread_flag(TIF_32BIT)) + /* * Thread-synchronous status. *