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> --- 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