summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorGuoli Shu <Kerry.Shu@Sun.COM>2010-02-09 15:21:27 -0800
committerGuoli Shu <Kerry.Shu@Sun.COM>2010-02-09 15:21:27 -0800
commit26896e4c150206551989fd1aa9452a11c5ced6fc (patch)
tree7b6231db587c1c3cd3bf1a4f7a8baf545c06aa93 /usr/src
parent1c4c388cca4fbb98853714d86358e5ca9d8da6eb (diff)
downloadillumos-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.c2
-rw-r--r--usr/src/uts/i86pc/io/pcplusmp/apic_introp.c8
-rw-r--r--usr/src/uts/intel/ia32/sys/trap.h6
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 */