~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to arch/s390/lib/uaccess_std.c

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
255
255
                : "0" (-EFAULT), "d" (oparg), "a" (uaddr),              \
256
256
                  "m" (*uaddr) : "cc");
257
257
 
258
 
int futex_atomic_op_std(int op, int __user *uaddr, int oparg, int *old)
 
258
int futex_atomic_op_std(int op, u32 __user *uaddr, int oparg, int *old)
259
259
{
260
260
        int oldval = 0, newval, ret;
261
261
 
287
287
        return ret;
288
288
}
289
289
 
290
 
int futex_atomic_cmpxchg_std(int __user *uaddr, int oldval, int newval)
 
290
int futex_atomic_cmpxchg_std(u32 *uval, u32 __user *uaddr,
 
291
                             u32 oldval, u32 newval)
291
292
{
292
293
        int ret;
293
294
 
294
295
        asm volatile(
295
296
                "   sacf 256\n"
296
297
                "0: cs   %1,%4,0(%5)\n"
297
 
                "1: lr   %0,%1\n"
 
298
                "1: la   %0,0\n"
298
299
                "2: sacf 0\n"
299
300
                EX_TABLE(0b,2b) EX_TABLE(1b,2b)
300
301
                : "=d" (ret), "+d" (oldval), "=m" (*uaddr)
301
302
                : "0" (-EFAULT), "d" (newval), "a" (uaddr), "m" (*uaddr)
302
303
                : "cc", "memory" );
 
304
        *uval = oldval;
303
305
        return ret;
304
306
}
305
307