mirror of
https://github.com/opnsense/src.git
synced 2026-04-24 15:48:48 -04:00
If em(4) failed to allocate RX buffers, do not call panic(9).
Just showing some buffer allocation error is more appropriate action for drivers. This should fix occasional panic reported on em(4) when driver encountered resource shortage. Reviewed by: jfv
This commit is contained in:
parent
6d23f8741b
commit
880a50b513
1 changed files with 6 additions and 3 deletions
|
|
@ -3843,7 +3843,7 @@ em_setup_receive_ring(struct rx_ring *rxr)
|
|||
rxbuf = &rxr->rx_buffers[j];
|
||||
rxbuf->m_head = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
|
||||
if (rxbuf->m_head == NULL)
|
||||
panic("RX ring hdr initialization failed!\n");
|
||||
return (ENOBUFS);
|
||||
rxbuf->m_head->m_len = MCLBYTES;
|
||||
rxbuf->m_head->m_flags &= ~M_HASFCS; /* we strip it */
|
||||
rxbuf->m_head->m_pkthdr.len = MCLBYTES;
|
||||
|
|
@ -3852,8 +3852,11 @@ em_setup_receive_ring(struct rx_ring *rxr)
|
|||
error = bus_dmamap_load_mbuf_sg(rxr->rxtag,
|
||||
rxbuf->map, rxbuf->m_head, seg,
|
||||
&nsegs, BUS_DMA_NOWAIT);
|
||||
if (error != 0)
|
||||
panic("RX ring dma initialization failed!\n");
|
||||
if (error != 0) {
|
||||
m_freem(rxbuf->m_head);
|
||||
rxbuf->m_head = NULL;
|
||||
return (error);
|
||||
}
|
||||
bus_dmamap_sync(rxr->rxtag,
|
||||
rxbuf->map, BUS_DMASYNC_PREREAD);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue