We might call pool_put(9) on the bnx_tx_pool from bnx_watchdog() which
runs from a timeout. So this one doesn't get PR_WAITOK.
ok?
Index: if_bnx.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_bnx.c,v
retrieving revision 1.112
diff -u -p -r1.112 if_bnx.c
--- if_bnx.c 24 Jul 2015 01:19:18 -0000 1.112
+++ if_bnx.c 4 Sep 2015 14:12:06 -0000
@@ -4701,7 +4701,7 @@ bnx_init(void *xsc)
bnx_tx_pool = malloc(sizeof(*bnx_tx_pool), M_DEVBUF, M_WAITOK);
if (bnx_tx_pool != NULL) {
pool_init(bnx_tx_pool, sizeof(struct bnx_pkt),
- 0, 0, 0, "bnxpkts", &pool_allocator_nointr);
+ 0, 0, 0, "bnxpkts", NULL);
} else
txpl = 0;
}