Received: by 2002:a05:6358:489b:b0:bb:da1:e618 with SMTP id x27csp6776252rwn; Tue, 13 Sep 2022 08:53:10 -0700 (PDT) X-Google-Smtp-Source: AA6agR6Q696OPask1ZiDNVc1zjF1o8ZV5antOQsWrQMELz2SJfaJjMLX6+aa8isREGQXx+JZ7sR+ X-Received: by 2002:a17:906:db02:b0:780:24e:cf9 with SMTP id xj2-20020a170906db0200b00780024e0cf9mr2031444ejb.460.1663084386545; Tue, 13 Sep 2022 08:53:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663084386; cv=none; d=google.com; s=arc-20160816; b=GQKVlER2T1aP3t+rJ8PYXH9zxYVTl9EadaeQsoz/Cjegv7XBrY/zoD539+D6igurcS S/Q32Fvznt/UWIRZqEhwDuaekr9TcC6wYMt9+QP+a6EGDxWj2WgFWNxyErmq238oYD0m tCKc4L/sJRoLL0uLzKHk2iX7tx0e0vowy8p8wovJY4qQVvd7/Fmxt73F4X8oBlXMaF41 ao2iZN2X4Tf+XQBHDG5kZKFWuaOiDqwByIHSeF0Ie+Hev2q+V16lDc6J7BPOL+u62yAI DW0DHJln3G0GAT2pUXEM3bL0GItmBRIqpljd1NK0h4BYAFPxauIGJxLlU86z07BX7WoW sPuA== 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=hel9KDJKob88N1Rgzg4c6G+Wl1OK35mxk6wmo9x+7JaqQWp6n0TBVCccMAXKcr0vZB 47XNVlKq9Auz//QUvfaqyPt5zK5Reukh0P0i8+I+SbK8Scc9BiMVWumCxQ1IlpKZ/VRu jhIq0LByc0UE10Z9e5QystxrV8u7AN8+ixDOmTzDkGBs+jdwJM52O94i77WWJhB8K2di GXISaaXOaW2EHpztVjIgD331W5q011Mee4SErI0ETkSKcD4uRQC4Mmf1B9yX+66XuY7m I/i7ANUbG2ioWaaZx6mtBj0n+z1aO+pUgLJNtMzSmRPiCHY6a6aqtqqTJq/eoVQz2JPN /pGg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=sLtMoaSa; 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 qf2-20020a1709077f0200b0073d68cdd0a8si10496121ejc.9.2022.09.13.08.52.40; Tue, 13 Sep 2022 08:53:06 -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=sLtMoaSa; 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 S236601AbiIMPbV (ORCPT + 99 others); Tue, 13 Sep 2022 11:31:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236618AbiIMP3O (ORCPT ); Tue, 13 Sep 2022 11:29:14 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5FF046CD26; Tue, 13 Sep 2022 07:39:49 -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 7F055B8101F; Tue, 13 Sep 2022 14:38:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D00E1C433D6; Tue, 13 Sep 2022 14:37:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1663079880; bh=c+8isZ6YTFjQhAE68z6WOk1AgkqlsJDOpn1OWpRm7yg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sLtMoaSa9OBnb0sOkOxe+x6Y4u4Q7Pf7NqkUDefXDML1QacdQLQnwv9sZLNzjHp/h MrvJdGrvCY1AbQQTrGMoG0CHSzLSFz0YlFmzM8LejNCPF3yrwy01RkSJ+py5INy9kQ v3CDZdUNO6KJnYv8sPkIrRA/v364Mm+fLutbD+HI= 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.9 30/42] ALSA: aloop: Fix random zeros in capture data when using jiffies timer Date: Tue, 13 Sep 2022 16:08:01 +0200 Message-Id: <20220913140343.856407916@linuxfoundation.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220913140342.228397194@linuxfoundation.org> References: <20220913140342.228397194@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; }