summaryrefslogtreecommitdiff
path: root/i386/i386/pic.c
diff options
context:
space:
mode:
Diffstat (limited to 'i386/i386/pic.c')
-rw-r--r--i386/i386/pic.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/i386/i386/pic.c b/i386/i386/pic.c
index 62ed9ed1..66fbc04a 100644
--- a/i386/i386/pic.c
+++ b/i386/i386/pic.c
@@ -74,8 +74,9 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <i386/machspl.h>
#include <i386/pio.h>
-spl_t curr_ipl;
+spl_t curr_ipl[NCPUS] = {0};
int curr_pic_mask;
+int spl_init = 0;
int iunit[NINTR] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
@@ -112,8 +113,10 @@ picinit(void)
/*
** 0. Initialise the current level to match cli()
*/
+ int i;
- curr_ipl = SPLHI;
+ for (i = 0; i < NCPUS; i++)
+ curr_ipl[i] = SPLHI;
curr_pic_mask = 0;
/*
@@ -207,7 +210,7 @@ intnull(int unit_dev)
/*
* Mask a PIC IRQ.
*/
-inline void
+void
mask_irq (unsigned int irq_nr)
{
int new_pic_mask = curr_pic_mask | 1 << irq_nr;
@@ -229,7 +232,7 @@ mask_irq (unsigned int irq_nr)
/*
* Unmask a PIC IRQ.
*/
-inline void
+void
unmask_irq (unsigned int irq_nr)
{
int mask;