2007-06-18 06:23:15

by Mike Frysinger

[permalink] [raw]
Subject: [patch] use __asm__ rather than asm in asm-s390/ptrace.h

Since asm-s390/ptrace.h is exported to userspace, we need to make sure we use
__asm__() rather than asm() as the latter is disabled when gcc compiles with
GNU extensions turned off (like -std=c99).

Signed-off-by: Mike Frysinger <[email protected]>
---
diff --git a/include/asm-s390/ptrace.h b/include/asm-s390/ptrace.h
index fa6ca87..4add355 100644
--- a/include/asm-s390/ptrace.h
+++ b/include/asm-s390/ptrace.h
@@ -475,7 +475,7 @@ extern void show_regs(struct pt_regs * regs);
static inline void
psw_set_key(unsigned int key)
{
- asm volatile("spka 0(%0)" : : "d" (key));
+ __asm__ __volatile__("spka 0(%0)" : : "d" (key));
}

#endif /* __ASSEMBLY__ */


2007-06-18 07:36:41

by Heiko Carstens

[permalink] [raw]
Subject: Re: [patch] use __asm__ rather than asm in asm-s390/ptrace.h

On Mon, Jun 18, 2007 at 02:23:06AM -0400, Mike Frysinger wrote:
> Since asm-s390/ptrace.h is exported to userspace, we need to make sure we use
> __asm__() rather than asm() as the latter is disabled when gcc compiles with
> GNU extensions turned off (like -std=c99).
>
> Signed-off-by: Mike Frysinger <[email protected]>
> ---
> diff --git a/include/asm-s390/ptrace.h b/include/asm-s390/ptrace.h
> index fa6ca87..4add355 100644
> --- a/include/asm-s390/ptrace.h
> +++ b/include/asm-s390/ptrace.h
> @@ -475,7 +475,7 @@ extern void show_regs(struct pt_regs * regs);
> static inline void
> psw_set_key(unsigned int key)
> {
> - asm volatile("spka 0(%0)" : : "d" (key));
> + __asm__ __volatile__("spka 0(%0)" : : "d" (key));
> }
>
> #endif /* __ASSEMBLY__ */

Hmm.. spka is a sort of priviledged instruction and shouldn't be
user space visible.
I will move it so it's under #ifdef __KERNEL__.

2007-06-18 08:14:11

by Martin Schwidefsky

[permalink] [raw]
Subject: Re: [patch] use __asm__ rather than asm in asm-s390/ptrace.h

On Mon, 2007-06-18 at 09:36 +0200, Heiko Carstens wrote:
> Hmm.. spka is a sort of priviledged instruction and shouldn't be
> user space visible.
> I will move it so it's under #ifdef __KERNEL__.

Yes, I think this is better. On a side node, why did we add psw_set_key
to ptrace.h? processor.h would have made more sense, no? It sets the key
in the psw, it is not usable in userspace and ptrace doesn't provide an
interface for reading/writing to the psw key. So a patch that moves the
inline to processor.h alongside __load_psw and __load_psw_mask would be
my solution.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.


2007-06-18 08:24:12

by Heiko Carstens

[permalink] [raw]
Subject: Re: [patch] use __asm__ rather than asm in asm-s390/ptrace.h

On Mon, Jun 18, 2007 at 10:15:18AM +0200, Martin Schwidefsky wrote:
> On Mon, 2007-06-18 at 09:36 +0200, Heiko Carstens wrote:
> > Hmm.. spka is a sort of priviledged instruction and shouldn't be
> > user space visible.
> > I will move it so it's under #ifdef __KERNEL__.
>
> Yes, I think this is better. On a side node, why did we add psw_set_key
> to ptrace.h? processor.h would have made more sense, no? It sets the key
> in the psw, it is not usable in userspace and ptrace doesn't provide an
> interface for reading/writing to the psw key. So a patch that moves the
> inline to processor.h alongside __load_psw and __load_psw_mask would be
> my solution.

Yes. Moved it to processor.h instead :)