From ef643aef2b959c3531c1fd9628c4be9ab43eb50f Mon Sep 17 00:00:00 2001 From: egillett Date: Fri, 31 Aug 2007 14:35:42 -0700 Subject: PSARC/2007/453 MSI-X interrupt limit override 6592959 MSI-X interrupt limit override --- usr/src/uts/common/os/ddi_intr_impl.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'usr/src/uts/common/os/ddi_intr_impl.c') diff --git a/usr/src/uts/common/os/ddi_intr_impl.c b/usr/src/uts/common/os/ddi_intr_impl.c index 74c403d0ec..b1678cb144 100644 --- a/usr/src/uts/common/os/ddi_intr_impl.c +++ b/usr/src/uts/common/os/ddi_intr_impl.c @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -38,6 +38,8 @@ #include #include /* include prototypes */ +extern uint_t ddi_msix_alloc_limit; + /* * New DDI interrupt framework */ @@ -403,3 +405,20 @@ i_ddi_set_msi_msix_cap_ptr(dev_info_t *dip, int cap_ptr) intr_p->devi_cap_ptr = cap_ptr; } #endif + +/* ARGSUSED */ +uint_t +i_ddi_get_msix_alloc_limit(dev_info_t *dip) +{ + uint_t msix_alloc_limit = ddi_msix_alloc_limit; + +#if defined(__sparc) + if (ddi_prop_exists(DDI_DEV_T_ANY, dip, DDI_PROP_NOTPROM | + DDI_PROP_DONTPASS, "#msix-request")) { + msix_alloc_limit = MAX(DDI_MAX_MSIX_ALLOC, + ddi_msix_alloc_limit); + } +#endif + + return (msix_alloc_limit); +} -- cgit v1.2.3