Hi Thomas, >> 1)If igb_alloc_rx_queue_mbufs() would fail to allocate an mbuf for RX queue, >> it calls igb_rx_queue_release(rxq). >> That causes rxq to be silently freed, without updating >> dev->data->rx_queues[]. So any firther reference to it will trigger the >> SIGSEGV. >> Same thing in em PMD too. >> To fix: igb_alloc_rx_queue_mbufs() should just return an error to the caller >> and let upper layer to deal with the probem. >> That's what ixgbe PMD doing right now. >> 2)In tx_queue_setup (for all 3 PMDs: ixgbe, igb, em) we call >> tx_queue_release(dev->data->tx_queues[queue_idx]) >> without setting dev->data->tx_queues[queue_idx] = NULL >> afterwards. >> 3)Prevent rte_eth_dev_start/stop to call underneath dev_start/dev_stop >> for already started/stopped device. >> 4) fix compiler warning on PMD_DEBUG_TRACE() formats.
>Please, only 1 fix per patch. >This way, we'll hopefully have a nice title for each fix. >It's simpler for changelog. It is all fix for the same problem (except #4 of course). I just put 1,2,3 to make it clear from what sub-parts fix consists. Konstantin