summaryrefslogtreecommitdiff
path: root/sys/arch/hppa
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2010-12-21 14:56:25 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2010-12-21 14:56:25 +0000
commitb45bcd941aeed9f9b5bca41338e52b47d57e7e43 (patch)
tree5a85ea83bfba94610d95b7c92196ee879e6dc6b6 /sys/arch/hppa
parent1a7fe0231942d0e57909a2e6458fbcd0d2a5a8e0 (diff)
Convert netisr to a normal soft interrupt instead of hanving MD code
for it. This makes the netisr a real C function which will help further development. No noticable performance change on i386 and amd64. With input from kettenis@ and miod@ additional OKs mikeb@ and henning@
Diffstat (limited to 'sys/arch/hppa')
-rw-r--r--sys/arch/hppa/hppa/intr.c21
-rw-r--r--sys/arch/hppa/hppa/locore.S9
-rw-r--r--sys/arch/hppa/hppa/trap.c4
-rw-r--r--sys/arch/hppa/include/intr.h3
4 files changed, 5 insertions, 32 deletions
diff --git a/sys/arch/hppa/hppa/intr.c b/sys/arch/hppa/hppa/intr.c
index e6ff9249093..292f2467835 100644
--- a/sys/arch/hppa/hppa/intr.c
+++ b/sys/arch/hppa/hppa/intr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: intr.c,v 1.35 2010/09/20 06:33:47 matthew Exp $ */
+/* $OpenBSD: intr.c,v 1.36 2010/12/21 14:56:23 claudio Exp $ */
/*
* Copyright (c) 2002-2004 Michael Shalayeff
@@ -33,17 +33,12 @@
#include <sys/evcount.h>
#include <sys/malloc.h>
-#include <net/netisr.h>
-
#include <uvm/uvm_extern.h> /* for uvmexp */
#include <machine/autoconf.h>
#include <machine/frame.h>
#include <machine/reg.h>
-void softnet(void);
-void softtty(void);
-
struct hppa_iv {
char pri;
char irq;
@@ -64,7 +59,7 @@ struct hppa_iv intr_store[8*2*CPU_NINTS] __attribute__ ((aligned(32))),
*intr_more = intr_store, *intr_list;
struct hppa_iv intr_table[CPU_NINTS] __attribute__ ((aligned(32))) = {
{ IPL_SOFTCLOCK, 0, HPPA_IV_SOFT, 0, 0, NULL },
- { IPL_SOFTNET , 0, HPPA_IV_SOFT, 0, 0, (int (*)(void *))&softnet },
+ { IPL_SOFTNET , 0, HPPA_IV_SOFT, 0, 0, NULL },
{ 0 },
{ 0 },
{ IPL_SOFTTTY , 0, HPPA_IV_SOFT, 0, 0, NULL }
@@ -90,18 +85,6 @@ splassert_check(int wantipl, const char *func)
#endif
void
-softnet(void)
-{
- int ni;
-
- /* use atomic "load & clear" */
- __asm __volatile(
- "ldcws 0(%2), %0": "=&r" (ni), "+m" (netisr): "r" (&netisr));
-#define DONETISR(m,c) if (ni & (1 << (m))) c()
-#include <net/netisr_dispatch.h>
-}
-
-void
cpu_intr_init(void)
{
struct cpu_info *ci = curcpu();
diff --git a/sys/arch/hppa/hppa/locore.S b/sys/arch/hppa/hppa/locore.S
index 4613c382498..a76b179973d 100644
--- a/sys/arch/hppa/hppa/locore.S
+++ b/sys/arch/hppa/hppa/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.181 2010/12/10 09:13:02 kettenis Exp $ */
+/* $OpenBSD: locore.S,v 1.182 2010/12/21 14:56:23 claudio Exp $ */
/*
* Copyright (c) 1998-2004 Michael Shalayeff
@@ -102,13 +102,6 @@
.data
- .export netisr, data
- .align 16
-netisr
- .word 0
- .size netisr, .-netisr
- .align 16
-
BSS(pdc_stack, 4) /* temp stack for PDC call */
BSS(emrg_stack, 4) /* stack for HPMC/TOC/PWRF */
diff --git a/sys/arch/hppa/hppa/trap.c b/sys/arch/hppa/hppa/trap.c
index afacb556abd..dc503021337 100644
--- a/sys/arch/hppa/hppa/trap.c
+++ b/sys/arch/hppa/hppa/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.111 2010/11/27 19:57:23 miod Exp $ */
+/* $OpenBSD: trap.c,v 1.112 2010/12/21 14:56:23 claudio Exp $ */
/*
* Copyright (c) 1998-2004 Michael Shalayeff
@@ -36,8 +36,6 @@
#include <sys/signalvar.h>
#include <sys/user.h>
-#include <net/netisr.h>
-
#include "systrace.h"
#include <dev/systrace.h>
diff --git a/sys/arch/hppa/include/intr.h b/sys/arch/hppa/include/intr.h
index 692044d6d98..8bb543c0ad1 100644
--- a/sys/arch/hppa/include/intr.h
+++ b/sys/arch/hppa/include/intr.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: intr.h,v 1.34 2010/07/02 00:00:45 jsing Exp $ */
+/* $OpenBSD: intr.h,v 1.35 2010/12/21 14:56:23 claudio Exp $ */
/*
* Copyright (c) 2002-2004 Michael Shalayeff
@@ -156,7 +156,6 @@ int hppa_ipi_send(struct cpu_info *, u_long);
#endif
#define setsoftast(p) (p->p_md.md_astpending = 1)
-#define setsoftnet() softintr(1 << (IPL_SOFTNET - 1))
void *softintr_establish(int, void (*)(void *), void *);
void softintr_disestablish(void *);