Mercurial > illumos > illumos-gate
changeset 638:e68332ad56a3 onnv_25
6260567 hci1394 fails to remove its isr before quiescing device resulting in panic on modunload
6286705 modunloads on every module panics on x86
author | ap25164 |
---|---|
date | Mon, 03 Oct 2005 14:18:07 -0700 |
parents | 3bfca5eeee8e |
children | c1caddacd3df |
files | usr/src/uts/common/io/1394/adapters/hci1394_detach.c usr/src/uts/common/io/1394/adapters/hci1394_q.c |
diffstat | 2 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/io/1394/adapters/hci1394_detach.c Fri Sep 30 18:43:55 2005 -0700 +++ b/usr/src/uts/common/io/1394/adapters/hci1394_detach.c Mon Oct 03 14:18:07 2005 -0700 @@ -20,7 +20,7 @@ * CDDL HEADER END */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -67,6 +67,9 @@ /* Don't allow the HW to generate any more interrupts */ hci1394_ohci_intr_master_disable(soft_state->ohci); + /* unregister interrupt handler */ + hci1394_isr_handler_fini(soft_state); + /* don't accept anymore commands from services layer */ (void) hci1394_state_set(&soft_state->drvinfo, HCI1394_SHUTDOWN);
--- a/usr/src/uts/common/io/1394/adapters/hci1394_q.c Fri Sep 30 18:43:55 2005 -0700 +++ b/usr/src/uts/common/io/1394/adapters/hci1394_q.c Mon Oct 03 14:18:07 2005 -0700 @@ -20,8 +20,8 @@ * CDDL HEADER END */ /* - * Copyright (c) 1999-2000 by Sun Microsystems, Inc. - * All rights reserved. + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -156,7 +156,9 @@ status = hci1394_buf_alloc(drvinfo, &parms, &data->qb_buf, &data->qb_buf_handle); if (status != DDI_SUCCESS) { - hci1394_buf_free(&data->qb_buf_handle); + /* Free the allocated Descriptor buffer */ + hci1394_buf_free(&desc->qb_buf_handle); + mutex_destroy(&q->q_mutex); kmem_free(q, sizeof (hci1394_q_t)); *q_handle = NULL;