From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932137AbWFGJvV (ORCPT ); Wed, 7 Jun 2006 05:51:21 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932118AbWFGJvV (ORCPT ); Wed, 7 Jun 2006 05:51:21 -0400 Received: from mx2.suse.de ([195.135.220.15]:54194 "EHLO mx2.suse.de") by vger.kernel.org with ESMTP id S932137AbWFGJvU (ORCPT ); Wed, 7 Jun 2006 05:51:20 -0400 Date: Wed, 07 Jun 2006 11:51:12 +0200 Message-ID: From: Takashi Iwai To: Adrian McMenamin Cc: alsa-devel@alsa-project.org, Paul Mundt , Lee Revell , linux-kernel@vger.kernel.org, linux-sh Subject: Re: [linuxsh-dev] [Alsa-devel] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast In-Reply-To: <1149635448.5154.7.camel@localhost.localdomain> References: <1149201071.9032.13.camel@localhost.localdomain> <1149334788.9065.5.camel@localhost.localdomain> <1149635448.5154.7.camel@localhost.localdomain> User-Agent: Wanderlust/2.12.0 (Your Wildest Dreams) SEMI/1.14.6 (Maruoka) FLIM/1.14.7 (=?ISO-8859-4?Q?Sanj=F2?=) APEL/10.6 MULE XEmacs/21.5 (beta25) (eggplant) (+CVS-20060326) (i386-suse-linux) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org At Wed, 07 Jun 2006 00:10:48 +0100, Adrian McMenamin wrote: > > On Tue, 2006-06-06 at 12:25 +0200, Takashi Iwai wrote: > > > Another big concern is that spu_dma_work is initialized/rewritten > > dynamically in spu_begin_dma() and aica_period_elapsed() via > > INIT_WORK() and PREPARE_WOR(). This looks pretty strange and may be > > racy. > > Actually, the two macros INIT_WORK and PREPARE_WORK use the same work > queue but ask it to schedule the execution of two different (if very > similar) functions start_spu_dma() - which does the initial transfer and > more_spu_dma - which tops up the dma transfers. > > So I think I've got that right. What's wrong with using two individual work struct so that you initialize them only once? I wonder it because you already have unused fields work and work2... Takashi