Commit 74216ef5 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] s390: core s390

From: Martin Schwidefsky <schwidefsky@de.ibm.com>

s390 core changes:
 - Fix _raw_spin_trylock for 64 bit.
 - Add clarification to s390 debug debug documentation.
parent c8b976af
...@@ -66,9 +66,9 @@ a view can be inspected simply by reading the corresponding proc file. ...@@ -66,9 +66,9 @@ a view can be inspected simply by reading the corresponding proc file.
All debug logs have an an actual debug level (range from 0 to 6). All debug logs have an an actual debug level (range from 0 to 6).
The default level is 3. Event and Exception functions have a 'level' The default level is 3. Event and Exception functions have a 'level'
parameter. Only debug entries with a level that is lower or equal parameter. Only debug entries with a level that is lower or equal
than the actual level are written to the log. This means that high than the actual level are written to the log. This means, when
priority log entries should have a low level value whereas low priority writing events, high priority log entries should have a low level
entries should have a high one. value whereas low priority entries should have a high one.
The actual debug level can be changed with the help of the proc-filesystem The actual debug level can be changed with the help of the proc-filesystem
through writing a number string "x" to the 'level' proc file which is through writing a number string "x" to the 'level' proc file which is
provided for every debug log. Debugging can be switched off completely provided for every debug log. Debugging can be switched off completely
......
...@@ -70,11 +70,9 @@ extern inline void _raw_spin_lock(spinlock_t *lp) ...@@ -70,11 +70,9 @@ extern inline void _raw_spin_lock(spinlock_t *lp)
extern inline int _raw_spin_trylock(spinlock_t *lp) extern inline int _raw_spin_trylock(spinlock_t *lp)
{ {
#ifndef __s390x__ unsigned long reg;
unsigned long result, reg; unsigned int result;
#else /* __s390x__ */
unsigned int result, reg;
#endif /* __s390x__ */
__asm__ __volatile(" basr %1,0\n" __asm__ __volatile(" basr %1,0\n"
"0: cs %0,%1,0(%3)" "0: cs %0,%1,0(%3)"
: "=d" (result), "=&d" (reg), "=m" (lp->lock) : "=d" (result), "=&d" (reg), "=m" (lp->lock)
...@@ -226,7 +224,7 @@ extern inline int _raw_write_trylock(rwlock_t *rw) ...@@ -226,7 +224,7 @@ extern inline int _raw_write_trylock(rwlock_t *rw)
"0: csg %0,%1,0(%3)\n" "0: csg %0,%1,0(%3)\n"
#endif /* __s390x__ */ #endif /* __s390x__ */
: "=d" (result), "=&d" (reg), "=m" (rw->lock) : "=d" (result), "=&d" (reg), "=m" (rw->lock)
: "a" (&rw->lock), "m" (rw->lock), "0" (0) : "a" (&rw->lock), "m" (rw->lock), "0" (0UL)
: "cc", "memory" ); : "cc", "memory" );
return result == 0; return result == 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment