Commit cc25b4d7 authored by David Mosberger's avatar David Mosberger

ia64: In start_thread(), remove the clearing of the scratch registers which are

	now cleared by the syscall exit path.
parent 64a34d18
...@@ -589,7 +589,7 @@ END(ia64_ret_from_syscall) ...@@ -589,7 +589,7 @@ END(ia64_ret_from_syscall)
* r16-r19: cleared * r16-r19: cleared
* r20: user-level ar.fpsr * r20: user-level ar.fpsr
* r21: user-level b0 * r21: user-level b0
* r22: NOT HANDLED * r22: cleared
* r23: user-level ar.bspstore * r23: user-level ar.bspstore
* r24: user-level ar.rnat * r24: user-level ar.rnat
* r25: user-level ar.unat * r25: user-level ar.unat
......
...@@ -304,35 +304,13 @@ struct thread_struct { ...@@ -304,35 +304,13 @@ struct thread_struct {
regs->loadrs = 0; \ regs->loadrs = 0; \
regs->r8 = current->mm->dumpable; /* set "don't zap registers" flag */ \ regs->r8 = current->mm->dumpable; /* set "don't zap registers" flag */ \
regs->r12 = new_sp - 16; /* allocate 16 byte scratch area */ \ regs->r12 = new_sp - 16; /* allocate 16 byte scratch area */ \
if (unlikely(!current->mm->dumpable)) { \ if (unlikely(!current->mm->dumpable)) { \
/* \ /* \
* Zap scratch regs to avoid leaking bits between processes with different \ * Zap scratch regs to avoid leaking bits between processes with different \
* uid/privileges. \ * uid/privileges. \
*/ \ */ \
regs->ar_pfs = 0; \ regs->ar_pfs = 0; regs->b0 = 0; regs->pr = 0; \
regs->pr = 0; \ regs->r1 = 0; regs->r9 = 0; regs->r11 = 0; regs->r13 = 0; regs->r15 = 0; \
/* \
* XXX fix me: everything below can go away once we stop preserving scratch \
* regs on a system call. \
*/ \
regs->b6 = 0; \
regs->r1 = 0; regs->r2 = 0; regs->r3 = 0; \
regs->r13 = 0; regs->r14 = 0; regs->r15 = 0; \
regs->r9 = 0; regs->r11 = 0; \
regs->r16 = 0; regs->r17 = 0; regs->r18 = 0; regs->r19 = 0; \
regs->r20 = 0; regs->r21 = 0; regs->r22 = 0; regs->r23 = 0; \
regs->r24 = 0; regs->r25 = 0; regs->r26 = 0; regs->r27 = 0; \
regs->r28 = 0; regs->r29 = 0; regs->r30 = 0; regs->r31 = 0; \
regs->ar_ccv = 0; \
regs->ar_csd = 0; \
regs->ar_ssd = 0; \
regs->b0 = 0; regs->b7 = 0; \
regs->f6.u.bits[0] = 0; regs->f6.u.bits[1] = 0; \
regs->f7.u.bits[0] = 0; regs->f7.u.bits[1] = 0; \
regs->f8.u.bits[0] = 0; regs->f8.u.bits[1] = 0; \
regs->f9.u.bits[0] = 0; regs->f9.u.bits[1] = 0; \
regs->f10.u.bits[0] = 0; regs->f10.u.bits[1] = 0; \
regs->f11.u.bits[0] = 0; regs->f11.u.bits[1] = 0; \
} \ } \
} while (0) } while (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