[PATCH v2 02/10] ALSA: firewire: convert tasklets to use new tasklet_setup() API

Takashi Sakamoto o-takashi at sakamocchi.jp
Wed Sep 2 10:44:43 CEST 2020


Hi,

On Wed, Sep 02, 2020 at 09:32:13AM +0530, Allen Pais wrote:
> In preparation for unconditionally passing the
> struct tasklet_struct pointer to all tasklet
> callbacks, switch to using the new tasklet_setup()
> and from_tasklet() to pass the tasklet pointer explicitly.
> 
> Signed-off-by: Romain Perier <romain.perier at gmail.com>
> Signed-off-by: Allen Pais <allen.lkml at gmail.com>
> ---
>  sound/firewire/amdtp-stream.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

This looks good to me.

Acked-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>


To Iwai-san,

I'm review your patch in 'test/kill-tasklet' branch in sound.git[1].
Although I agree with the direction to obsolete tasklet usage with
workqueue, 'in_interrupt()' helper function is used in two lines in
'sound/firewire/amdtp-stream.c' since it's convenient to distinguish
running context (any softirq or user task). We need enough care of
the cases about which below two patches mention:

 * 1dba9db0eaa6 ('ALSA: firewire-lib: permit to flush queued packets
   only in process context for better PCM period granularity')
 * 4a9bfafc64f4 ('ALSA: firewire-lib: Fix stall of process context
   at packet error)

As long as I know, we have no helper function to distinguish workqueue
task from user task. The simple replacement is not good way in the case.
I'm investigating better solution but not find yet...

[1] https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?h=test/kill-tasklet&id=bd17f03415d44c1a69fcbb7c074c1dc86f4e8bc6


Thanks


Takashi Sakamoto


More information about the Alsa-devel mailing list