Remove fuswintr() and suswintr(), they were never implemented and it was a
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 6 Jan 2007 03:23:20 +0000 (03:23 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 6 Jan 2007 03:23:20 +0000 (03:23 +0000)
bad idea to try to write to a userspace context from an interrupt anyway.

sys/kern/subr_prof.c
sys/platform/pc32/i386/support.s
sys/sys/resourcevar.h

index bae6f90..8dcd5aa 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)subr_prof.c 8.3 (Berkeley) 9/23/93
  * $FreeBSD: src/sys/kern/subr_prof.c,v 1.32.2.2 2000/08/03 00:09:32 ps Exp $
- * $DragonFly: src/sys/kern/subr_prof.c,v 1.15 2006/12/23 23:47:54 swildner Exp $
+ * $DragonFly: src/sys/kern/subr_prof.c,v 1.16 2007/01/06 03:23:18 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -386,6 +386,9 @@ sys_profil(struct profil_args *uap)
  * an AST that will vector us to trap() with a context in which copyin
  * and copyout will work.  Trap will then call addupc_task().
  *
+ * XXX fuswintr() and suswintr() never worked (always returnde -1), remove
+ * them.  It's just a bad idea to try to do this from a hard interrupt.
+ *
  * Note that we may (rarely) not get around to the AST soon enough, and
  * lose profile ticks when the next tick overwrites this one, but in this
  * case the system is overloaded and the profile is probably already
@@ -397,7 +400,6 @@ addupc_intr(struct proc *p, u_long pc, u_int ticks)
        struct uprof *prof;
        caddr_t addr;
        u_int i;
-       int v;
 
        if (ticks == 0)
                return;
@@ -407,11 +409,9 @@ addupc_intr(struct proc *p, u_long pc, u_int ticks)
                return;                 /* out of range; ignore */
 
        addr = prof->pr_base + i;
-       if ((v = fuswintr(addr)) == -1 || suswintr(addr, v + ticks) == -1) {
-               prof->pr_addr = pc;
-               prof->pr_ticks = ticks;
-               need_proftick();
-       }
+       prof->pr_addr = pc;
+       prof->pr_ticks = ticks;
+       need_proftick();
 }
 
 /*
index 51ae423..a807b1d 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/i386/support.s,v 1.67.2.5 2001/08/15 01:23:50 peter Exp $
- * $DragonFly: src/sys/platform/pc32/i386/support.s,v 1.17 2006/12/26 20:43:56 dillon Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/support.s,v 1.18 2007/01/06 03:23:19 dillon Exp $
  */
 
 #include "use_npx.h"
@@ -364,17 +364,6 @@ ENTRY(fuword)
        movl    $0,PCB_ONFAULT(%ecx)
        ret
 
-/*
- * These two routines are called from the profiling code, potentially
- * at interrupt time. If they fail, that's okay, good things will
- * happen later. Fail all the time for now - until the trap code is
- * able to deal with this.
- */
-ALTENTRY(suswintr)
-ENTRY(fuswintr)
-       movl    $-1,%eax
-       ret
-
 /*
  * fusword - MP SAFE
  */
index 7c727fa..3210609 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)resourcevar.h       8.4 (Berkeley) 1/9/95
  * $FreeBSD: src/sys/sys/resourcevar.h,v 1.16.2.1 2000/09/07 19:13:55 truckman Exp $
- * $DragonFly: src/sys/sys/resourcevar.h,v 1.14 2007/01/01 22:51:18 corecode Exp $
+ * $DragonFly: src/sys/sys/resourcevar.h,v 1.15 2007/01/06 03:23:20 dillon Exp $
  */
 
 #ifndef        _SYS_RESOURCEVAR_H_
@@ -110,9 +110,7 @@ void        calcru (struct lwp *lp, struct timeval *up, struct timeval *sp);
 void   calcru_proc (struct proc *p, struct rusage *ru);
 int    chgproccnt (struct uidinfo *uip, int diff, int max);
 int    chgsbsize (struct uidinfo *uip, u_long *hiwat, u_long to, rlim_t max);
-int    fuswintr (void *base);
 void   ruadd (struct rusage *ru, struct rusage *ru2);
-int    suswintr (void *base, int word);
 struct uidinfo *uifind (uid_t uid);
 void   uihold (struct uidinfo *uip);
 void   uidrop (struct uidinfo *uip);