changeset 3920:dd6c8eb0eb0d

6512401 T2000 systems hang on a reconfiguration boot with external serial loop back in.
author rameshc
date Thu, 29 Mar 2007 06:57:47 -0700
parents 2dddca2fe7e2
children 73fc58283c66
files usr/src/uts/sun4/io/ebus.c usr/src/uts/sun4u/montecarlo/io/acebus.c
diffstat 2 files changed, 14 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/sun4/io/ebus.c	Wed Mar 28 21:44:22 2007 -0700
+++ b/usr/src/uts/sun4/io/ebus.c	Thu Mar 29 06:57:47 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -777,6 +776,10 @@
 	case DDI_INTROP_GETCAP:
 		*(int *)result = DDI_INTR_FLAG_LEVEL;
 		return (DDI_SUCCESS);
+	case DDI_INTROP_SUPPORTED_TYPES:
+		*(int *)result = i_ddi_get_intx_nintrs(rdip) ?
+		    DDI_INTR_TYPE_FIXED : 0;
+		return (DDI_SUCCESS);
 	case DDI_INTROP_SETCAP:
 	case DDI_INTROP_SETMASK:
 	case DDI_INTROP_CLRMASK:
@@ -786,7 +789,7 @@
 		break;
 	}
 
-	if ((intr_op == DDI_INTROP_SUPPORTED_TYPES) || hdlp->ih_pri)
+	if (hdlp->ih_pri)
 		goto done;
 
 	/*
--- a/usr/src/uts/sun4u/montecarlo/io/acebus.c	Wed Mar 28 21:44:22 2007 -0700
+++ b/usr/src/uts/sun4u/montecarlo/io/acebus.c	Thu Mar 29 06:57:47 2007 -0700
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -685,6 +685,10 @@
 	case DDI_INTROP_GETCAP:
 		*(int *)result = DDI_INTR_FLAG_LEVEL;
 		return (DDI_SUCCESS);
+	case DDI_INTROP_SUPPORTED_TYPES:
+		*(int *)result = i_ddi_get_intx_nintrs(rdip) ?
+		    DDI_INTR_TYPE_FIXED : 0;
+		return (DDI_SUCCESS);
 	case DDI_INTROP_SETCAP:
 	case DDI_INTROP_SETMASK:
 	case DDI_INTROP_CLRMASK:
@@ -694,7 +698,7 @@
 		break;
 	}
 
-	if ((intr_op == DDI_INTROP_SUPPORTED_TYPES) || hdlp->ih_pri)
+	if (hdlp->ih_pri)
 		goto done;
 
 	/*