From cecfa35819d13ab26f41d532f904681b316e6c0d Mon Sep 17 00:00:00 2001 From: stephh Date: Thu, 5 Apr 2007 03:14:36 -0700 Subject: 6505228 fix for 6328213 seems to have broken bofi 6529479 ddi_fm_fini should check if device is ERRCB_CAPABLE before calling ddi_fm_handler_unregister --- usr/src/uts/common/os/ddifm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'usr/src/uts/common/os/ddifm.c') diff --git a/usr/src/uts/common/os/ddifm.c b/usr/src/uts/common/os/ddifm.c index caf35edcff..71dcab5b61 100644 --- a/usr/src/uts/common/os/ddifm.c +++ b/usr/src/uts/common/os/ddifm.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. */ @@ -772,7 +772,11 @@ ddi_fm_fini(dev_info_t *dip) } if (dip != ddi_root_node()) { - ddi_fm_handler_unregister(dip); + if (DDI_FM_ERRCB_CAP(fmhdl->fh_cap)) { + ddi_fm_handler_unregister(dip); + (void) ddi_prop_remove(DDI_DEV_T_NONE, dip, + "fm-errcb-capable"); + } if (DDI_FM_DMA_ERR_CAP(fmhdl->fh_cap) || DDI_FM_ACC_ERR_CAP(fmhdl->fh_cap)) { -- cgit v1.2.3