Mercurial > illumos > illumos-gate
changeset 10726:dd40023f03e8
6887540 panic - page fault in scsi_vhci dur to NULL pointer dereference after RCC pull
6887820 SUNWpmcsr doesn't need to deliver kernel/misc
author | Srikanth, Ramana <Ramana.Srikanth@Sun.COM> |
---|---|
date | Tue, 06 Oct 2009 16:59:04 -0400 |
parents | cd144ed668c5 |
children | 64d9f366e98f |
files | usr/src/pkgdefs/SUNWpmcsr/prototype_com usr/src/uts/common/os/sunmdi.c |
diffstat | 2 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/pkgdefs/SUNWpmcsr/prototype_com Tue Oct 06 19:56:15 2009 -0700 +++ b/usr/src/pkgdefs/SUNWpmcsr/prototype_com Tue Oct 06 16:59:04 2009 -0400 @@ -48,4 +48,3 @@ d none kernel/drv 0755 root sys e pmcsconf kernel/drv/pmcs.conf 0644 root sys d none kernel/kmdb 0755 root sys -d none kernel/misc 0755 root sys
--- a/usr/src/uts/common/os/sunmdi.c Tue Oct 06 19:56:15 2009 -0700 +++ b/usr/src/uts/common/os/sunmdi.c Tue Oct 06 16:59:04 2009 -0400 @@ -2133,10 +2133,10 @@ pip = (mdi_pathinfo_t *)MDI_PI(pip)->pi_client_link) ; - /* If path can't be selected then MDI_FAILURE is returned. */ + /* If path can't be selected then MDI_NOPATH is returned. */ if (pip == NULL) { MDI_CLIENT_UNLOCK(ct); - return (MDI_FAILURE); + return (MDI_NOPATH); } /* @@ -2157,6 +2157,13 @@ return (MDI_FAILURE); } + /* Return MDI_BUSY if we have a transient condition */ + if (MDI_PI_IS_TRANSIENT(pip)) { + MDI_PI_UNLOCK(pip); + MDI_CLIENT_UNLOCK(ct); + return (MDI_BUSY); + } + /* * Return the path in hold state. Caller should release the * lock by calling mdi_rele_path()