Marius Strobl 3db348b54a - In _iflib_fl_refill(), don't mark an RX buffer as available in the
corresponding bitmap before adding an mbuf has actually succeeded.
  Previously, m_gethdr(M_NOWAIT, ...) failing caused a "hole" in the
  RX ring but not in its bitmap. One implication of such a hole was
  that in a subsequent call to _iflib_fl_refill() with the RX buffer
  accounting still indicating another reclaimable buffer, bit_ffc(3)
  nevertheless returned -1 in frag_idx which in turn caused havoc
  when used as an index. Thus, additionally assert that frag_idx is
  0 or greater.
  Another possible consequence of a hole in the RX ring was a NULL-
  dereference when trying to use the unallocated mbuf, for example
  in iflib_rxd_pkt_get().

  While at it, make the variable declarations in _iflib_fl_refill()
  conform to style(9) and remove redundant checks already performed
  by bit_ffc{,_at}(3).

- In iflib_queues_alloc(), don't pass redundant M_ZERO to bit_alloc(3).

Reported and tested by: pho
2019-01-26 21:35:51 +00:00
..
2018-05-31 09:11:21 +00:00
2017-02-06 08:49:57 +00:00
2018-10-30 09:53:57 +00:00
2019-01-10 00:37:14 +00:00
2018-05-19 05:27:49 +00:00
2018-11-26 13:42:18 +00:00
2018-03-23 16:56:44 +00:00
2018-03-23 16:56:44 +00:00
2018-11-02 16:57:23 +00:00
2018-06-16 19:21:09 +00:00
2017-07-24 03:59:50 +00:00
2018-11-26 13:42:18 +00:00