diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2010-12-21 14:56:25 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2010-12-21 14:56:25 +0000 |
commit | b45bcd941aeed9f9b5bca41338e52b47d57e7e43 (patch) | |
tree | 5a85ea83bfba94610d95b7c92196ee879e6dc6b6 /sys/arch/hppa | |
parent | 1a7fe0231942d0e57909a2e6458fbcd0d2a5a8e0 (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.c | 21 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/locore.S | 9 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/trap.c | 4 | ||||
-rw-r--r-- | sys/arch/hppa/include/intr.h | 3 |
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 *); |