diff options
author | egillett <none@none> | 2007-08-31 14:35:42 -0700 |
---|---|---|
committer | egillett <none@none> | 2007-08-31 14:35:42 -0700 |
commit | ef643aef2b959c3531c1fd9628c4be9ab43eb50f (patch) | |
tree | 2739f17775bcabd302b476f6abf5114a9ba9c484 /usr/src/uts/common/os/ddi_intr_impl.c | |
parent | 477032463b6ad98ae85035185348e42f6092fe3a (diff) | |
download | illumos-gate-ef643aef2b959c3531c1fd9628c4be9ab43eb50f.tar.gz |
PSARC/2007/453 MSI-X interrupt limit override
6592959 MSI-X interrupt limit override
Diffstat (limited to 'usr/src/uts/common/os/ddi_intr_impl.c')
-rw-r--r-- | usr/src/uts/common/os/ddi_intr_impl.c | 21 |
1 files changed, 20 insertions, 1 deletions
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 <sys/sunndi.h> #include <sys/ndi_impldefs.h> /* 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); +} |