diff options
Diffstat (limited to 'sys/dev/hea/eni_receive.c')
-rw-r--r-- | sys/dev/hea/eni_receive.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/sys/dev/hea/eni_receive.c b/sys/dev/hea/eni_receive.c index fd4eb98..8e87752 100644 --- a/sys/dev/hea/eni_receive.c +++ b/sys/dev/hea/eni_receive.c @@ -585,7 +585,7 @@ send_dma: /* * Place buffer on receive queue waiting for RX_DMA */ - if ( IF_QFULL ( &eup->eu_rxqueue ) ) { + if ( _IF_QFULL ( &eup->eu_rxqueue ) ) { /* * We haven't done anything we can't back out * of. Drop request and service it next time. @@ -605,7 +605,7 @@ send_dma: vct->vci_control &= ~VCI_IN_SERVICE; return; } else { - IF_ENQUEUE ( &eup->eu_rxqueue, m ); + _IF_ENQUEUE ( &eup->eu_rxqueue, m ); /* * Advance the RX_WR pointer to cause * the adapter to work on this DMA list. @@ -685,7 +685,7 @@ eni_recv_drain ( eup ) s = splimp(); /* Pop first buffer */ - IF_DEQUEUE ( &eup->eu_rxqueue, m ); + _IF_DEQUEUE ( &eup->eu_rxqueue, m ); while ( m ) { u_long *up; u_long pdulen; @@ -712,12 +712,12 @@ eni_recv_drain ( eup ) */ if ( start > stop ) { /* We wrapped */ if ( !(DMA_Rdptr >= stop && DMA_Rdptr < start) ) { - IF_PREPEND ( &eup->eu_rxqueue, m ); + _IF_PREPEND ( &eup->eu_rxqueue, m ); goto finish; } } else { if ( DMA_Rdptr < stop && DMA_Rdptr >= start ) { - IF_PREPEND ( &eup->eu_rxqueue, m ); + _IF_PREPEND ( &eup->eu_rxqueue, m ); goto finish; } } @@ -802,9 +802,8 @@ eni_recv_drain ( eup ) /* * Schedule callback */ - if ( !IF_QFULL ( &atm_intrq ) ) { + if (IF_HANDOFF(&atm_intrq, m, NULL)) { que++; - IF_ENQUEUE ( &atm_intrq, m ); } else { eup->eu_stats.eni_st_drv.drv_rv_intrq++; eup->eu_pif.pif_ierrors++; @@ -812,7 +811,6 @@ eni_recv_drain ( eup ) log ( LOG_ERR, "eni_receive_drain: ATM_INTRQ is full. Unable to pass up stack.\n" ); #endif - KB_FREEALL ( m ); } } else { /* @@ -825,7 +823,7 @@ next_buffer: /* * Look for next buffer */ - IF_DEQUEUE ( &eup->eu_rxqueue, m ); + _IF_DEQUEUE ( &eup->eu_rxqueue, m ); } finish: (void) splx(s); |