summaryrefslogtreecommitdiffstats
path: root/sys/i386/linux
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2003-04-22 20:01:56 +0000
committerjhb <jhb@FreeBSD.org>2003-04-22 20:01:56 +0000
commitd5cf4c5275f6e664075d1972274e99a697bd6823 (patch)
treeea348fa385a95b324d1a7caec25bb96bb7f3d226 /sys/i386/linux
parent82ad2123a7b313d71d0658f06af9b38db418b946 (diff)
downloadFreeBSD-src-d5cf4c5275f6e664075d1972274e99a697bd6823.zip
FreeBSD-src-d5cf4c5275f6e664075d1972274e99a697bd6823.tar.gz
Prefer the proc lock to sched_lock when testing PS_INMEM now that it is
safe to do so.
Diffstat (limited to 'sys/i386/linux')
-rw-r--r--sys/i386/linux/linux_ptrace.c24
1 files changed, 8 insertions, 16 deletions
diff --git a/sys/i386/linux/linux_ptrace.c b/sys/i386/linux/linux_ptrace.c
index adfe3df..3ead237 100644
--- a/sys/i386/linux/linux_ptrace.c
+++ b/sys/i386/linux/linux_ptrace.c
@@ -222,31 +222,23 @@ struct linux_pt_fpxreg {
static int
linux_proc_read_fpxregs(struct thread *td, struct linux_pt_fpxreg *fpxregs)
{
- int error;
- error = 0;
- mtx_lock_spin(&sched_lock);
+ PROC_LOCK_ASSERT(td->td_proc, MA_OWNED);
if (cpu_fxsr == 0 || (td->td_proc->p_sflag & PS_INMEM) == 0)
- error = EIO;
- else
- bcopy(&td->td_pcb->pcb_save.sv_xmm, fpxregs, sizeof(*fpxregs));
- mtx_unlock_spin(&sched_lock);
- return (error);
+ return (EIO);
+ bcopy(&td->td_pcb->pcb_save.sv_xmm, fpxregs, sizeof(*fpxregs));
+ return (0);
}
static int
linux_proc_write_fpxregs(struct thread *td, struct linux_pt_fpxreg *fpxregs)
{
- int error;
- error = 0;
- mtx_lock_spin(&sched_lock);
+ PROC_LOCK_ASSERT(td->td_proc, MA_OWNED);
if (cpu_fxsr == 0 || (td->td_proc->p_sflag & PS_INMEM) == 0)
- error = EIO;
- else
- bcopy(fpxregs, &td->td_pcb->pcb_save.sv_xmm, sizeof(*fpxregs));
- mtx_unlock_spin(&sched_lock);
- return (error);
+ return (EIO);
+ bcopy(fpxregs, &td->td_pcb->pcb_save.sv_xmm, sizeof(*fpxregs));
+ return (0);
}
#endif
OpenPOWER on IntegriCloud