Hi David, >> you create a window of time during which the consumer >> can release the page and prematurely free it. Okay, but here the consumer i.e HW is notified only after page count is incremented. For example if you check 'nicvf_refill_rbdr' fn() only after receive buffer ring is refilled with buffers, doorbell is issued to hardware to start using the new buffers.
So @@ -241,6 +254,8 @@ refill: new_rb++; } + nicvf_get_page(nic); + calling 'nicvf_get_page' before issuing doorbell ensures page ref count is properly set before hw/consumer can use the buffers. Thanks, Sunil.