summaryrefslogtreecommitdiffstats
path: root/sys/compat/ndis/kern_ndis.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/ndis/kern_ndis.c')
-rw-r--r--sys/compat/ndis/kern_ndis.c8
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;
OpenPOWER on IntegriCloud