summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_iwmvar.h
diff options
context:
space:
mode:
authorStefan Sperling <stsp@cvs.openbsd.org>2020-02-12 16:02:52 +0000
committerStefan Sperling <stsp@cvs.openbsd.org>2020-02-12 16:02:52 +0000
commit42929787739b02239f2f550d2006e6cffd64c8ad (patch)
tree67f151a7982b8c4f3721a81df1fee59ddf578244 /sys/dev/pci/if_iwmvar.h
parent13d6fea92a19f7cd930f6b5a11cd720f6bf23a33 (diff)
Implement a workaround for missing Tx completion interrupts in iwm(4).
iwm(4) releases resources whenever hardware signals Tx completion for a frame at Tx queue index 'N'. It has been observed that we sometimes get an interrupt for frame 'N - 2' followed by an interrupt for frame 'N', with no interrupt being received for frame 'N - 1'. Whenever this occurred a later decision to roam to another AP would fail since AP node references for frames affected by missing interrupts were never released. Another side-effect was an mbuf leak. The problem was first observed at 36c3 and debugged there with bluhm@. ok tobhe@
Diffstat (limited to 'sys/dev/pci/if_iwmvar.h')
-rw-r--r--sys/dev/pci/if_iwmvar.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/pci/if_iwmvar.h b/sys/dev/pci/if_iwmvar.h
index 5206d9ac72a..aa586f131ed 100644
--- a/sys/dev/pci/if_iwmvar.h
+++ b/sys/dev/pci/if_iwmvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwmvar.h,v 1.49 2019/12/18 09:52:15 stsp Exp $ */
+/* $OpenBSD: if_iwmvar.h,v 1.50 2020/02/12 16:02:51 stsp Exp $ */
/*
* Copyright (c) 2014 genua mbh <info@genua.de>
@@ -270,6 +270,7 @@ struct iwm_tx_ring {
int qid;
int queued;
int cur;
+ int tail;
};
#define IWM_RX_MQ_RING_COUNT 512