rt2x00: merge fix for queue stopping
Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37603 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
955864764c
commit
251d3a0ba1
|
@ -798,3 +798,45 @@
|
||||||
mi->prev_sample = false;
|
mi->prev_sample = false;
|
||||||
if (delta < 0 || (!mrr_capable && prev_sample))
|
if (delta < 0 || (!mrr_capable && prev_sample))
|
||||||
return;
|
return;
|
||||||
|
--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
|
||||||
|
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
|
||||||
|
@@ -936,13 +936,8 @@ void rt2x00queue_index_inc(struct queue_
|
||||||
|
spin_unlock_irqrestore(&queue->index_lock, irqflags);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void rt2x00queue_pause_queue(struct data_queue *queue)
|
||||||
|
+void rt2x00queue_pause_queue_nocheck(struct data_queue *queue)
|
||||||
|
{
|
||||||
|
- if (!test_bit(DEVICE_STATE_PRESENT, &queue->rt2x00dev->flags) ||
|
||||||
|
- !test_bit(QUEUE_STARTED, &queue->flags) ||
|
||||||
|
- test_and_set_bit(QUEUE_PAUSED, &queue->flags))
|
||||||
|
- return;
|
||||||
|
-
|
||||||
|
switch (queue->qid) {
|
||||||
|
case QID_AC_VO:
|
||||||
|
case QID_AC_VI:
|
||||||
|
@@ -958,6 +953,15 @@ void rt2x00queue_pause_queue(struct data
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+void rt2x00queue_pause_queue(struct data_queue *queue)
|
||||||
|
+{
|
||||||
|
+ if (!test_bit(DEVICE_STATE_PRESENT, &queue->rt2x00dev->flags) ||
|
||||||
|
+ !test_bit(QUEUE_STARTED, &queue->flags) ||
|
||||||
|
+ test_and_set_bit(QUEUE_PAUSED, &queue->flags))
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ rt2x00queue_pause_queue_nocheck(queue);
|
||||||
|
+}
|
||||||
|
EXPORT_SYMBOL_GPL(rt2x00queue_pause_queue);
|
||||||
|
|
||||||
|
void rt2x00queue_unpause_queue(struct data_queue *queue)
|
||||||
|
@@ -1019,7 +1023,7 @@ void rt2x00queue_stop_queue(struct data_
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- rt2x00queue_pause_queue(queue);
|
||||||
|
+ rt2x00queue_pause_queue_nocheck(queue);
|
||||||
|
|
||||||
|
queue->rt2x00dev->ops->lib->stop_queue(queue);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue