summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/wl1271.h
diff options
context:
space:
mode:
authorIdo Yariv2010-10-12 14:49:10 +0200
committerJohn W. Linville2010-11-15 19:25:05 +0100
commita522550a283de31c7cfc30c7a129ce584e38c582 (patch)
tree3cee18d0f0dbbb3c5bff27488c0d302821e4f1d8 /drivers/net/wireless/wl12xx/wl1271.h
parentwl1271: TX aggregation optimization (diff)
downloadkernel-qcow2-linux-a522550a283de31c7cfc30c7a129ce584e38c582.tar.gz
kernel-qcow2-linux-a522550a283de31c7cfc30c7a129ce584e38c582.tar.xz
kernel-qcow2-linux-a522550a283de31c7cfc30c7a129ce584e38c582.zip
wl1271: Fix TX starvation
While wl1271_irq_work handles RX directly (by calling wl1271_rx), a different work is scheduled for transmitting packets. The IRQ work might handle more than one interrupt during a single call, including multiple TX completion interrupts. This might starve TX, since no packets are transmitted until all interrupts are handled. Fix this by calling the TX work function directly, instead of deferring it. Signed-off-by: Ido Yariv <ido@wizery.com> Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl1271.h')
-rw-r--r--drivers/net/wireless/wl12xx/wl1271.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271.h b/drivers/net/wireless/wl12xx/wl1271.h
index 8a4cd763e5a2..4a034a3f7148 100644
--- a/drivers/net/wireless/wl12xx/wl1271.h
+++ b/drivers/net/wireless/wl12xx/wl1271.h
@@ -351,6 +351,7 @@ struct wl1271 {
#define WL1271_FLAG_IDLE_REQUESTED (11)
#define WL1271_FLAG_PSPOLL_FAILURE (12)
#define WL1271_FLAG_STA_STATE_SENT (13)
+#define WL1271_FLAG_FW_TX_BUSY (14)
unsigned long flags;
struct wl1271_partition_set part;