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:
Josef Söntgen 2018-09-12 14:47:20 +02:00 committed by Christian Helmuth
parent cc61227f93
commit 040eae4806
1 changed files with 1 additions and 6 deletions

View File

@ -1466,12 +1466,7 @@ void tasklet_init(struct tasklet_struct *t, void (*f)(unsigned long), unsigned l
void tasklet_schedule(struct tasklet_struct *tasklet)
{
Lx::Work::work_queue().schedule_tasklet(tasklet);
}
void tasklet_hi_schedule(struct tasklet_struct *tasklet)
{
tasklet_schedule(tasklet);
Lx::Work::work_queue().unblock();
}