On Tue, 03 Nov 2020 19:43:55 +0100, Yu Hao wrote: > > Yes, I can do that. > > And a quick question, to resubmit with that change means that I should create > a new submission and this one ends, right? Yes, just submit a fresh patch. thanks, Takashi > > Thanks. > > On Tue, Nov 3, 2020 at 5:09 AM Takashi Iwai <tiwai@xxxxxxx> wrote: > > On Mon, 02 Nov 2020 08:11:54 +0100, > Yu Hao wrote: > > > > The function snd_seq_queue_client_termination() is only called from > > function seq_free_client1(). The seq_free_client1() calls function > > snd_seq_queue_client_leave(), which deletes all objects whose owner > > equals to client->number in global array queue_list, before the function > > snd_seq_queue_client_termination(), which checks whether there are > > any objects in global array queue_list whose owner equals to > > client->number, with the same argument client->number. So > > the checking code in function snd_seq_queue_client_termination() is > > dead code. Remove those dead code. > > > > Signed-off-by: Yu Hao <yuhaobehappy@xxxxxxxxx> > > Actually the whole function snd_seq_queue_client_termination() can be > removed. It's a quite old code and I don't remember clearly, but I > guess the intention was to call this before the actual queue > deletion. OTOH, it doesn't make any sense to change that order any > longer, as the snd_seq_queue_client_leave() already takes similar > procedure anyway, so let's rather wipe off the useless function. > > Could you resubmit with that change? > > thanks, > > Takashi > > > --- > > sound/core/seq/seq_queue.c | 11 ----------- > > 1 file changed, 11 deletions(-) > > > > diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c > > index 71a6ea62c3be..91b3f3295d0b 100644 > > --- a/sound/core/seq/seq_queue.c > > +++ b/sound/core/seq/seq_queue.c > > @@ -545,21 +545,10 @@ void snd_seq_queue_client_termination(int client) > > unsigned long flags; > > int i; > > struct snd_seq_queue *q; > > - bool matched; > > > > for (i = 0; i < SNDRV_SEQ_MAX_QUEUES; i++) { > > if ((q = queueptr(i)) == NULL) > > continue; > > - spin_lock_irqsave(&q->owner_lock, flags); > > - matched = (q->owner == client); > > - if (matched) > > - q->klocked = 1; > > - spin_unlock_irqrestore(&q->owner_lock, flags); > > - if (matched) { > > - if (q->timer->running) > > - snd_seq_timer_stop(q->timer); > > - snd_seq_timer_reset(q->timer); > > - } > > queuefree(q); > > } > > } > > -- > > 2.17.1 > > > >