firewire: ohci: prevent iso completion callbacks after context stop
To prevent the iso packet callback from being called after fw_iso_context_stop() has returned, make sure that the context's tasklet has finished executing before that. This fixes access-after-free bugs that have so far been observed only in the upcoming snd-firewire-speakers driver, but can theoretically also happen in the firedtv driver. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
This commit is contained in:
parent
5aaffc65a2
commit
e81cbebdfc
@ -2764,6 +2764,7 @@ static int ohci_stop_iso(struct fw_iso_context *base)
|
|||||||
}
|
}
|
||||||
flush_writes(ohci);
|
flush_writes(ohci);
|
||||||
context_stop(&ctx->context);
|
context_stop(&ctx->context);
|
||||||
|
tasklet_kill(&ctx->context.tasklet);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user