diff options
-rw-r--r-- | usr/src/uts/common/io/igb/igb_main.c | 3 | ||||
-rw-r--r-- | usr/src/uts/common/io/igb/igb_tx.c | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/usr/src/uts/common/io/igb/igb_main.c b/usr/src/uts/common/io/igb/igb_main.c index 635930b5be..6cd7e1cb7f 100644 --- a/usr/src/uts/common/io/igb/igb_main.c +++ b/usr/src/uts/common/io/igb/igb_main.c @@ -29,7 +29,7 @@ #include "igb_sw.h" static char ident[] = "Intel 1Gb Ethernet"; -static char igb_version[] = "igb 1.1.11"; +static char igb_version[] = "igb 1.1.12"; /* * Local function protoypes @@ -3974,6 +3974,7 @@ igb_intr_legacy(void *arg1, void *arg2) icr = E1000_READ_REG(&igb->hw, E1000_ICR); if (igb_check_acc_handle(igb->osdep.reg_handle) != DDI_FM_OK) { + mutex_exit(&igb->gen_lock); ddi_fm_service_impact(igb->dip, DDI_SERVICE_DEGRADED); atomic_or_32(&igb->igb_state, IGB_ERROR); return (DDI_INTR_UNCLAIMED); diff --git a/usr/src/uts/common/io/igb/igb_tx.c b/usr/src/uts/common/io/igb/igb_tx.c index 9deef24989..b77afe1a5d 100644 --- a/usr/src/uts/common/io/igb/igb_tx.c +++ b/usr/src/uts/common/io/igb/igb_tx.c @@ -1091,6 +1091,7 @@ igb_tx_recycle_legacy(igb_tx_ring_t *tx_ring) if (igb_check_dma_handle( tx_ring->tbd_area.dma_handle) != DDI_FM_OK) { + mutex_exit(&tx_ring->recycle_lock); ddi_fm_service_impact(igb->dip, DDI_SERVICE_DEGRADED); atomic_or_32(&igb->igb_state, IGB_ERROR); return (0); @@ -1239,6 +1240,7 @@ igb_tx_recycle_head_wb(igb_tx_ring_t *tx_ring) if (igb_check_dma_handle( tx_ring->tbd_area.dma_handle) != DDI_FM_OK) { + mutex_exit(&tx_ring->recycle_lock); ddi_fm_service_impact(igb->dip, DDI_SERVICE_DEGRADED); atomic_or_32(&igb->igb_state, IGB_ERROR); return (0); |