From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S271369AbTGQKC0 (ORCPT ); Thu, 17 Jul 2003 06:02:26 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S271371AbTGQKC0 (ORCPT ); Thu, 17 Jul 2003 06:02:26 -0400 Received: from ns.suse.de ([213.95.15.193]:4105 "EHLO Cantor.suse.de") by vger.kernel.org with ESMTP id S271369AbTGQKCZ (ORCPT ); Thu, 17 Jul 2003 06:02:25 -0400 Date: Thu, 17 Jul 2003 12:17:18 +0200 Message-ID: From: Takashi Iwai To: mru@users.sourceforge.net (=?ISO-8859-1?Q?M=E5ns_Rullg=E5rd?=) Cc: linux-kernel@vger.kernel.org, alsa-devel@lists.sourceforge.net Subject: Re: [Alsa-devel] ALSA timer and 2.6.0-test1 panic In-Reply-To: References: User-Agent: Wanderlust/2.6.1 (Upside Down) SEMI/1.14.4 (Hosorogi) FLIM/1.14.4 (=?ISO-8859-4?Q?Kashiharajing=FE-mae?=) APEL/10.2 MULE XEmacs/21.4 (patch 12) (Portable Code) (i386-suse-linux) MIME-Version: 1.0 (generated by SEMI 1.14.4 - "Hosorogi") Content-Type: multipart/mixed; boundary="Multipart_Thu_Jul_17_12:17:18_2003-1" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --Multipart_Thu_Jul_17_12:17:18_2003-1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit At Wed, 16 Jul 2003 13:38:54 +0200, Måns Rullgård wrote: > > > I get thousands of these messages when using the ALSA timer in kernel > 2.6.0-test1: there is an unblanced spinlock. could you try the attached patch? -- Takashi Iwai SuSE Linux AG - www.suse.de ALSA Developer ALSA Project - www.alsa-project.org --Multipart_Thu_Jul_17_12:17:18_2003-1 Content-Type: application/octet-stream Content-Disposition: attachment; filename="timer-spin-fix.dif" Content-Transfer-Encoding: 7bit --- linux/sound/core/timer.c 18 Jun 2003 10:48:29 -0000 1.28 +++ linux/sound/core/timer.c 17 Jul 2003 10:15:11 -0000 @@ -1690,10 +1690,11 @@ break; } } - spin_unlock_irq(&tu->qlock); if (err < 0) break; + spin_unlock_irq(&tu->qlock); + if (tu->tread) { if (copy_to_user(buffer, &tu->tqueue[tu->qhead++], sizeof(snd_timer_tread_t))) { err = -EFAULT; @@ -1714,6 +1715,7 @@ spin_lock_irq(&tu->qlock); tu->qused--; } + spin_unlock_irq(&tu->qlock); return result > 0 ? result : err; } --Multipart_Thu_Jul_17_12:17:18_2003-1--