mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Remove the last of the MD netisr code. It is now all MI. Remove
spending, which was unused now that all software interrupts have their own thread. Make the legacy schednetisr use an atomic op for setting bits in the netisr mask. Reviewed by: jhb
This commit is contained in:
parent
4d3329891c
commit
1eb44f0270
13 changed files with 32 additions and 142 deletions
|
|
@ -421,33 +421,6 @@ again:
|
|||
#endif /* SMP */
|
||||
}
|
||||
|
||||
int
|
||||
register_netisr(num, handler)
|
||||
int num;
|
||||
netisr_t *handler;
|
||||
{
|
||||
|
||||
if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
|
||||
printf("register_netisr: bad isr number: %d\n", num);
|
||||
return (EINVAL);
|
||||
}
|
||||
netisrs[num] = handler;
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
unregister_netisr(num)
|
||||
int num;
|
||||
{
|
||||
|
||||
if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
|
||||
printf("unregister_netisr: bad isr number: %d\n", num);
|
||||
return (EINVAL);
|
||||
}
|
||||
netisrs[num] = NULL;
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Retrieve the platform name from the DSR.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@ extern char esigcode[];
|
|||
extern int szsigcode;
|
||||
extern int Maxmem;
|
||||
extern int busdma_swi_pending;
|
||||
extern void (*netisrs[32]) __P((void));
|
||||
|
||||
struct fpreg;
|
||||
struct proc;
|
||||
|
|
|
|||
|
|
@ -440,33 +440,6 @@ again:
|
|||
cpu_setregs();
|
||||
}
|
||||
|
||||
int
|
||||
register_netisr(num, handler)
|
||||
int num;
|
||||
netisr_t *handler;
|
||||
{
|
||||
|
||||
if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
|
||||
printf("register_netisr: bad isr number: %d\n", num);
|
||||
return (EINVAL);
|
||||
}
|
||||
netisrs[num] = handler;
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
unregister_netisr(num)
|
||||
int num;
|
||||
{
|
||||
|
||||
if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
|
||||
printf("unregister_netisr: bad isr number: %d\n", num);
|
||||
return (EINVAL);
|
||||
}
|
||||
netisrs[num] = NULL;
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Send an interrupt to process.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@ extern char kstack[];
|
|||
extern int need_pre_dma_flush;
|
||||
extern int need_post_dma_flush;
|
||||
#endif
|
||||
extern void (*netisrs[32]) __P((void));
|
||||
extern int nfs_diskless_valid;
|
||||
extern void (*ovbcopy_vector) __P((const void *from, void *to, size_t len));
|
||||
extern char sigcode[];
|
||||
|
|
|
|||
|
|
@ -440,33 +440,6 @@ again:
|
|||
cpu_setregs();
|
||||
}
|
||||
|
||||
int
|
||||
register_netisr(num, handler)
|
||||
int num;
|
||||
netisr_t *handler;
|
||||
{
|
||||
|
||||
if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
|
||||
printf("register_netisr: bad isr number: %d\n", num);
|
||||
return (EINVAL);
|
||||
}
|
||||
netisrs[num] = handler;
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
unregister_netisr(num)
|
||||
int num;
|
||||
{
|
||||
|
||||
if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
|
||||
printf("unregister_netisr: bad isr number: %d\n", num);
|
||||
return (EINVAL);
|
||||
}
|
||||
netisrs[num] = NULL;
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Send an interrupt to process.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -252,8 +252,6 @@
|
|||
#define __mtx_exit_giant_def _mtx_exit_giant_def
|
||||
#define _mul64 mul64
|
||||
#define _net_imask net_imask
|
||||
#define _netisr netisr
|
||||
#define _netisrs netisrs
|
||||
#define _nfs_diskless nfs_diskless
|
||||
#define _nfs_diskless_valid nfs_diskless_valid
|
||||
#define _normalize normalize
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@ extern char kstack[];
|
|||
extern int need_pre_dma_flush;
|
||||
extern int need_post_dma_flush;
|
||||
#endif
|
||||
extern void (*netisrs[32]) __P((void));
|
||||
extern int nfs_diskless_valid;
|
||||
extern void (*ovbcopy_vector) __P((const void *from, void *to, size_t len));
|
||||
extern char sigcode[];
|
||||
|
|
|
|||
|
|
@ -68,25 +68,6 @@ _softnet_imask: .long 0
|
|||
.globl _softtty_imask
|
||||
_softtty_imask: .long 0
|
||||
|
||||
/* pending software interrupts */
|
||||
.globl _spending
|
||||
_spending: .long 0
|
||||
|
||||
/* set with bits for which queue to service */
|
||||
.globl _netisr
|
||||
_netisr: .long 0
|
||||
|
||||
.globl _netisrs
|
||||
_netisrs:
|
||||
.long dummynetisr, dummynetisr, dummynetisr, dummynetisr
|
||||
.long dummynetisr, dummynetisr, dummynetisr, dummynetisr
|
||||
.long dummynetisr, dummynetisr, dummynetisr, dummynetisr
|
||||
.long dummynetisr, dummynetisr, dummynetisr, dummynetisr
|
||||
.long dummynetisr, dummynetisr, dummynetisr, dummynetisr
|
||||
.long dummynetisr, dummynetisr, dummynetisr, dummynetisr
|
||||
.long dummynetisr, dummynetisr, dummynetisr, dummynetisr
|
||||
.long dummynetisr, dummynetisr, dummynetisr, dummynetisr
|
||||
|
||||
.text
|
||||
|
||||
/*
|
||||
|
|
@ -173,13 +154,6 @@ doreti_ast:
|
|||
movb $1,_intr_nesting_level /* for doreti_next to decrement */
|
||||
jmp doreti_next
|
||||
|
||||
ALIGN_TEXT
|
||||
dummynetisr:
|
||||
MCOUNT
|
||||
ret
|
||||
|
||||
|
||||
|
||||
#ifdef APIC_IO
|
||||
#include "i386/isa/apic_ipl.s"
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -343,33 +343,6 @@ again:
|
|||
vm_pager_bufferinit();
|
||||
}
|
||||
|
||||
int
|
||||
register_netisr(num, handler)
|
||||
int num;
|
||||
netisr_t *handler;
|
||||
{
|
||||
|
||||
if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
|
||||
printf("register_netisr: bad isr number: %d\n", num);
|
||||
return (EINVAL);
|
||||
}
|
||||
netisrs[num] = handler;
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
unregister_netisr(num)
|
||||
int num;
|
||||
{
|
||||
|
||||
if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
|
||||
printf("unregister_netisr: bad isr number: %d\n", num);
|
||||
return (EINVAL);
|
||||
}
|
||||
netisrs[num] = NULL;
|
||||
return (0);
|
||||
}
|
||||
|
||||
static void
|
||||
identifycpu(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ extern char sigcode[];
|
|||
extern char esigcode[];
|
||||
extern int szsigcode;
|
||||
extern int Maxmem;
|
||||
extern void (*netisrs[32]) __P((void));
|
||||
|
||||
struct fpreg;
|
||||
struct proc;
|
||||
|
|
|
|||
|
|
@ -275,6 +275,33 @@ legacy_setsoftnet()
|
|||
void (*netisrs[32]) __P((void));
|
||||
u_int netisr;
|
||||
|
||||
int
|
||||
register_netisr(num, handler)
|
||||
int num;
|
||||
netisr_t *handler;
|
||||
{
|
||||
|
||||
if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
|
||||
printf("register_netisr: bad isr number: %d\n", num);
|
||||
return (EINVAL);
|
||||
}
|
||||
netisrs[num] = handler;
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
unregister_netisr(num)
|
||||
int num;
|
||||
{
|
||||
|
||||
if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
|
||||
printf("unregister_netisr: bad isr number: %d\n", num);
|
||||
return (EINVAL);
|
||||
}
|
||||
netisrs[num] = NULL;
|
||||
return (0);
|
||||
}
|
||||
|
||||
static void
|
||||
swi_net(void *dummy)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -71,7 +71,11 @@
|
|||
void legacy_setsoftnet __P((void));
|
||||
|
||||
extern volatile unsigned int netisr; /* scheduling bits for network */
|
||||
#define schednetisr(anisr) { netisr |= 1 << (anisr); legacy_setsoftnet(); }
|
||||
extern void (*netisrs[32]) __P((void));
|
||||
#define schednetisr(anisr) do { \
|
||||
atomic_set_rel_int(&netisr, 1 << (anisr)); \
|
||||
legacy_setsoftnet(); \
|
||||
} while (0)
|
||||
|
||||
typedef void netisr_t __P((void));
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@ extern char esigcode[];
|
|||
extern int szsigcode;
|
||||
extern int Maxmem;
|
||||
extern int busdma_swi_pending;
|
||||
extern void (*netisrs[32]) __P((void));
|
||||
|
||||
struct fpreg;
|
||||
struct proc;
|
||||
|
|
|
|||
Loading…
Reference in a new issue