Received: by 2002:a05:6358:489b:b0:bb:da1:e618 with SMTP id x27csp6946574rwn; Tue, 13 Sep 2022 11:15:36 -0700 (PDT) X-Google-Smtp-Source: AA6agR7RJGrbeU1BqnI4705FTYDteMOt8tZFAr70K/e1NV38uD7G8/vZOrRizulPN68cnVNAmQud X-Received: by 2002:a17:907:86ab:b0:77e:3d71:6e65 with SMTP id qa43-20020a17090786ab00b0077e3d716e65mr6689955ejc.194.1663092936346; Tue, 13 Sep 2022 11:15:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663092936; cv=none; d=google.com; s=arc-20160816; b=Hr8n8diewI3j1mVQvCz3VmK1SHmhWVr3BBXaT1Adwp0hrHQC+JpH76z2EO85jxolt6 3TUZS3U0uVyi0T4WOHq8XPB+yRq05aVH5sBvMduCEj7vd3uN2BTcx139GHcXhUHqp5GB EsZcP8pwgCTOoRrlNLmH6EG+JqBFbtQ/9dg5eX2V7bIMQ/cg1n6i1veOX+4ZBC0sH4Wr NyLn7jNLTQuCi63fYaQTYpwEXtm+BBHf0WOc3Afs7quRAR9C3DpGYVFpqCWfwosXvx4p TLtsvkpExiiIIMmCxpmuw3oF9Ow+4/eZ9/L5ZiQl7hnkC+I6VB0Oh+Wsb1OpYIynzw8A Gf3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=dhmdV2VmCe4YvekZfZOMhJSaSG/QBVkzlel/E+vRYrw=; b=XuDkuCePHtKBBr4K+wABotiLMW3XnEuUq/uBGZRGYgwi0giSCjT7qumBrpDC0D78Fx NbgmpYGfk4DAuFPkCK7FdDIpxcs+D+YxYRpOle6OWnkYD3fW0Rnjk/nIqvGAaqUkaN8Y XpCX3UebVZbwr+wAKvgsq4Bxs+5KIPW6QUuR/VlwpW5Dm1xHhiAYE/gcS5rA20yK5lun jArFYwa6yK2MTykEVbioOfW3E/Nns1xgXUTxxJ8td3Ofx/JCzbm6EGHGmLVt6VPU+0d/ kbQYeVzoHYMiFB4yRtGfcsz2LF1mc/poYGttXEMylvW9Fcf+TqSgnJysNnup2sArkp9i 7nag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=W99WdIhY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bw7-20020a170906c1c700b00730ed690a72si8841545ejb.630.2022.09.13.11.15.10; Tue, 13 Sep 2022 11:15:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=W99WdIhY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233491AbiIMRo7 (ORCPT + 99 others); Tue, 13 Sep 2022 13:44:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36836 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233243AbiIMRob (ORCPT ); Tue, 13 Sep 2022 13:44:31 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9AE516051F; Tue, 13 Sep 2022 09:40:19 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id A3AE2B80F99; Tue, 13 Sep 2022 14:32:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C0F9C433D7; Tue, 13 Sep 2022 14:32:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1663079541; bh=c+8isZ6YTFjQhAE68z6WOk1AgkqlsJDOpn1OWpRm7yg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W99WdIhYvFC1pj8DN7pr794u/7gXwNwCuLrfVwmqJ3+a/RIB6SwO740jrcTvVqBHL fcT3ReBAH0+OfL8+UarSGBUEASqPNgOeJG7qUcH7PdEdspzVDRvUtf2x5H7Fqc15qz QpL17lXibmyfTezzeNZ3DvTfJTzJLacSYtFMfZ2k= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Pattara Teerapong , Takashi Iwai Subject: [PATCH 4.19 58/79] ALSA: aloop: Fix random zeros in capture data when using jiffies timer Date: Tue, 13 Sep 2022 16:07:16 +0200 Message-Id: <20220913140351.706136135@linuxfoundation.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220913140348.835121645@linuxfoundation.org> References: <20220913140348.835121645@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Pattara Teerapong commit 3e48940abee88b8dbbeeaf8a07e7b2b6be1271b3 upstream. In loopback_jiffies_timer_pos_update(), we are getting jiffies twice. First time for playback, second time for capture. Jiffies can be updated between these two calls and if the capture jiffies is larger, extra zeros will be filled in the capture buffer. Change to get jiffies once and use it for both playback and capture. Signed-off-by: Pattara Teerapong Cc: Link: https://lore.kernel.org/r/20220901144036.4049060-1-pteerapong@chromium.org Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman --- sound/drivers/aloop.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) --- a/sound/drivers/aloop.c +++ b/sound/drivers/aloop.c @@ -477,17 +477,18 @@ static unsigned int loopback_pos_update( cable->streams[SNDRV_PCM_STREAM_PLAYBACK]; struct loopback_pcm *dpcm_capt = cable->streams[SNDRV_PCM_STREAM_CAPTURE]; - unsigned long delta_play = 0, delta_capt = 0; + unsigned long delta_play = 0, delta_capt = 0, cur_jiffies; unsigned int running, count1, count2; + cur_jiffies = jiffies; running = cable->running ^ cable->pause; if (running & (1 << SNDRV_PCM_STREAM_PLAYBACK)) { - delta_play = jiffies - dpcm_play->last_jiffies; + delta_play = cur_jiffies - dpcm_play->last_jiffies; dpcm_play->last_jiffies += delta_play; } if (running & (1 << SNDRV_PCM_STREAM_CAPTURE)) { - delta_capt = jiffies - dpcm_capt->last_jiffies; + delta_capt = cur_jiffies - dpcm_capt->last_jiffies; dpcm_capt->last_jiffies += delta_capt; }