Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 857c9905 authored by Sathya Perla's avatar Sathya Perla Committed by David S. Miller
Browse files

be2net: Fix race in posting rx buffers.



There is a possibility of be_post_rx_frags() being called simultaneously from
both be_worker() (when rx_post_starved) and be_poll_rx() (when rxq->used is 0).
This can be avoided by posting rx buffers only when some completions have been
reaped.

Signed-off-by: default avatarSathya Perla <sathya.perla@emulex.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ec5efe79
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1862,7 +1862,7 @@ static int be_poll_rx(struct napi_struct *napi, int budget)
	}

	/* Refill the queue */
	if (atomic_read(&rxo->q.used) < RX_FRAGS_REFILL_WM)
	if (work_done && atomic_read(&rxo->q.used) < RX_FRAGS_REFILL_WM)
		be_post_rx_frags(rxo, GFP_ATOMIC);

	/* All consumed */