diff options
Diffstat (limited to 'sys/compat/ndis/kern_ndis.c')
-rw-r--r-- | sys/compat/ndis/kern_ndis.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/compat/ndis/kern_ndis.c b/sys/compat/ndis/kern_ndis.c index 14d46da..53bfa77 100644 --- a/sys/compat/ndis/kern_ndis.c +++ b/sys/compat/ndis/kern_ndis.c @@ -671,7 +671,13 @@ ndis_send_packets(arg, packets, cnt) for (i = 0; i < cnt; i++) { p = packets[i]; - if (p->np_oob.npo_status == NDIS_STATUS_PENDING) + /* + * Either the driver already handed the packet to + * ndis_txeof() due to a failure, or it wants to keep + * it and release it asynchronously later. Skip to the + * next one. + */ + if (p == NULL || p->np_oob.npo_status == NDIS_STATUS_PENDING) continue; idx = p->np_txidx; m = p->np_m0; |