diff options
author | Guoli Shu <Kerry.Shu@Sun.COM> | 2010-02-09 15:21:27 -0800 |
---|---|---|
committer | Guoli Shu <Kerry.Shu@Sun.COM> | 2010-02-09 15:21:27 -0800 |
commit | 26896e4c150206551989fd1aa9452a11c5ced6fc (patch) | |
tree | 7b6231db587c1c3cd3bf1a4f7a8baf545c06aa93 /usr/src | |
parent | 1c4c388cca4fbb98853714d86358e5ca9d8da6eb (diff) | |
download | illumos-joyent-26896e4c150206551989fd1aa9452a11c5ced6fc.tar.gz |
6914747 IPL 6 is supposed to have 32 interrupt vectors, but we can get only 31
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/i86pc/io/pcplusmp/apic.c | 2 | ||||
-rw-r--r-- | usr/src/uts/i86pc/io/pcplusmp/apic_introp.c | 8 | ||||
-rw-r--r-- | usr/src/uts/intel/ia32/sys/trap.h | 6 |
3 files changed, 7 insertions, 9 deletions
diff --git a/usr/src/uts/i86pc/io/pcplusmp/apic.c b/usr/src/uts/i86pc/io/pcplusmp/apic.c index caf2004cb3..939ac73dab 100644 --- a/usr/src/uts/i86pc/io/pcplusmp/apic.c +++ b/usr/src/uts/i86pc/io/pcplusmp/apic.c @@ -2433,7 +2433,7 @@ apic_allocate_vector(int ipl, int irq, int pri) if (pri == 0) highest -= APIC_HI_PRI_VECTS; - for (i = lowest; i < highest; i++) { + for (i = lowest; i <= highest; i++) { if (APIC_CHECK_RESERVE_VECTORS(i)) continue; if (apic_vector_to_irq[i] == APIC_RESV_IRQ) { diff --git a/usr/src/uts/i86pc/io/pcplusmp/apic_introp.c b/usr/src/uts/i86pc/io/pcplusmp/apic_introp.c index bc23a9c3ff..0282f91bda 100644 --- a/usr/src/uts/i86pc/io/pcplusmp/apic_introp.c +++ b/usr/src/uts/i86pc/io/pcplusmp/apic_introp.c @@ -184,10 +184,10 @@ apic_navail_vector(dev_info_t *dip, int pri) lowest -= APIC_VECTOR_PER_IPL; /* It has to be contiguous */ - for (i = lowest; i < highest; i++) { + for (i = lowest; i <= highest; i++) { count = 0; while ((apic_vector_to_irq[i] == APIC_RESV_IRQ) && - (i < highest)) { + (i <= highest)) { if (APIC_CHECK_RESERVE_VECTORS(i)) break; count++; @@ -230,7 +230,7 @@ apic_find_multi_vectors(int pri, int count) msibits = count - 1; /* It has to be contiguous */ - for (i = lowest; i < highest; i++) { + for (i = lowest; i <= highest; i++) { navail = 0; /* @@ -241,7 +241,7 @@ apic_find_multi_vectors(int pri, int count) i = (i + msibits) & ~msibits; start = i; while ((apic_vector_to_irq[i] == APIC_RESV_IRQ) && - (i < highest)) { + (i <= highest)) { if (APIC_CHECK_RESERVE_VECTORS(i)) break; navail++; diff --git a/usr/src/uts/intel/ia32/sys/trap.h b/usr/src/uts/intel/ia32/sys/trap.h index fcd8739775..3d4536c4f8 100644 --- a/usr/src/uts/intel/ia32/sys/trap.h +++ b/usr/src/uts/intel/ia32/sys/trap.h @@ -23,15 +23,13 @@ /* All Rights Reserved */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _IA32_SYS_TRAP_H #define _IA32_SYS_TRAP_H -#pragma ident "%Z%%M% %I% %E% SMI" - #ifdef __cplusplus extern "C" { #endif @@ -64,7 +62,7 @@ extern "C" { #define T_ENOEXTFLT 0x20 /* emulated ext not present */ #define T_FASTTRAP 0xd2 /* fast system call */ #define T_SYSCALLINT 0x91 /* general system call */ -#define T_DTRACE_RET 0x7f /* DTrace pid return */ +#define T_DTRACE_RET 0x92 /* DTrace pid return */ #define T_INT80 0x80 /* int80 handler for linux emulation */ #define T_SOFTINT 0x50fd /* pseudo softint trap type */ |