When I posted the inspection and fixes/improvements to the driver at -fixes-stm32h7-ethernet, I wasn't sure what the intention was. I changed the wild tail descriptor pointer assignment to zero because that was the least code and cycles to make the DMA engine never stop, and if my rx buffer pool ever became empty, I made the next buffer-free signal the rx thread to receive and rebuild the descriptors, and then RBU is needed if the rx buffer pool is still empty when the past packet is received before the last descriptor's done. Then I found even without running out of buffers, if descriptor_count * buffer_size can be close to a giant packet size (RM0433 naming), and more or less depending on interpacket gap, RBU is needed for that too.