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;
        }

Reply via email to