Alex added page bias of LONG_MAX, which is admittedly quite
a clever way of catching overflows of the pp ref count.
The page pool code was "optimized" to leave the ref at 1
for freed pages so it can't catch basic bugs by itself any more.
(Something we should probably address under DEBUG_NET...)
Unfortunately for fbnic since commit 
f7dc3248dcfb ("skbuff: Optimization
of SKB coalescing for page pool") core _may_ actually take two extra
pp refcounts, if one of them is returned before driver gives up the bias
the ret < 0 check in page_pool_unref_netmem() will trigger.
While at it add a FBNIC_ to the name of the driver constant.
Fixes: 0cb4c0a13723 ("eth: fbnic: Implement Rx queue alloc/start/stop/free")
Link: https://patch.msgid.link/20250801170754.2439577-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 {
        struct fbnic_rx_buf *rx_buf = &ring->rx_buf[idx];
 
-       page_pool_fragment_page(page, PAGECNT_BIAS_MAX);
-       rx_buf->pagecnt_bias = PAGECNT_BIAS_MAX;
+       page_pool_fragment_page(page, FBNIC_PAGECNT_BIAS_MAX);
+       rx_buf->pagecnt_bias = FBNIC_PAGECNT_BIAS_MAX;
        rx_buf->page = page;
 }
 
 
        struct u64_stats_sync syncp;
 };
 
-/* Pagecnt bias is long max to reserve the last bit to catch overflow
- * cases where if we overcharge the bias it will flip over to be negative.
- */
-#define PAGECNT_BIAS_MAX       LONG_MAX
+#define FBNIC_PAGECNT_BIAS_MAX PAGE_SIZE
+
 struct fbnic_rx_buf {
        struct page *page;
        long pagecnt_bias;