wifi_drv: fix tasklet_schedule
The tasklet_schedule implementation was missing the unblock call, which was no problem in the past because the correspending task would get un- blocked by other work items. Now that every workqueue has its own task, there is nobody left to unblock the task and thereby execute the tasklet. As a tasklet is the only way to transmit any pending frames after transmission was temporarily suspended - because the device/fw was not able to process the TX request - this rendered 6xxx devices unusable whenever this situation occurred. Fixes #2973.
This commit is contained in:
parent
cc61227f93
commit
040eae4806
|
@ -1466,12 +1466,7 @@ void tasklet_init(struct tasklet_struct *t, void (*f)(unsigned long), unsigned l
|
||||||
void tasklet_schedule(struct tasklet_struct *tasklet)
|
void tasklet_schedule(struct tasklet_struct *tasklet)
|
||||||
{
|
{
|
||||||
Lx::Work::work_queue().schedule_tasklet(tasklet);
|
Lx::Work::work_queue().schedule_tasklet(tasklet);
|
||||||
}
|
Lx::Work::work_queue().unblock();
|
||||||
|
|
||||||
|
|
||||||
void tasklet_hi_schedule(struct tasklet_struct *tasklet)
|
|
||||||
{
|
|
||||||
tasklet_schedule(tasklet);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user