Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp401474ybh; Sat, 3 Aug 2019 01:51:18 -0700 (PDT) X-Google-Smtp-Source: APXvYqwCIE6g5wN297V2NHKwEIFy3sELz4fgJQhAelgUTCnO+nLusnVKhShvTi4s0WSg8t6iwL5B X-Received: by 2002:a17:902:e287:: with SMTP id cf7mr134243478plb.32.1564822278308; Sat, 03 Aug 2019 01:51:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564822278; cv=none; d=google.com; s=arc-20160816; b=BeL0l7u8Ilz3K1vPDmWq9Iko20gdQ+KYoqNaYi2dRjDjI6vqO14GJTmQMczAxrV/s+ MEx+XM8B77q44m7Q1coce7YITo7CzXxIJ6QxEbdpvhZfjv+MsAgCULXJLzKo2y3+L3XM xwXtoX8jx//YCVq7yiUoNX5+CQKfx8stnWHN4AYBYwcqEtg3Y9J1Ct66xNvFr6hYEvVD 0hyf1V121NEeJrD0vYFNEboKEZTWhJWbPPZiI/uwYbLr1YUOR9weldpmxJ8wPiQPE51N oJuIBPZS0Gw7umCBX/lTKkD719kKjY9WzgGTGlGms+9ikvKiz6fJt0t309n0Xqy50qYj QJjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=QxUJjwlF1u+vbWNnJ9ROj3+XEb69XlvyWVI0yTaCYGs=; b=gitvyAzBiqgGpQ8v7lEczv6+N7eB/4aUWoTO2UnKCv8PBtiVaJCuPpdyYF7EQZ66pr xfm6J+Ec49AkT+bU4FfAF3YMWa89RBPExCrYOQTpoqtiDribQojv7O+GVeDBLBjDHSNy wSUyXcEawnF37TGWDyCZ2FO9oqoqgfemirVx7+ZPOJqE/cY9kqXEEc5Qz7ycnD3hyzs1 Fl4cTB6Rt917CK+kj9gq9hVIOgjRrdZM71yXHZXn/TuliFzqAfPWTQ9+c5Bu7Dt3Wel/ mo3r1m/8WP4a/o8WsZzhGZfHJUnSPbnd3lMw3ECk1geIC6cXo+rXuEIyvK5cFf6XhZ2Z 3s6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=jzdtEaPH; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 132si38396502pgc.134.2019.08.03.01.51.03; Sat, 03 Aug 2019 01:51:18 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=jzdtEaPH; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388341AbfHBNYH (ORCPT + 99 others); Fri, 2 Aug 2019 09:24:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:34462 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390911AbfHBNXw (ORCPT ); Fri, 2 Aug 2019 09:23:52 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4380421872; Fri, 2 Aug 2019 13:23:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1564752231; bh=M4R9972fnoxfSVPVzUhIELY1yTqicd3vIhICzW7oOwc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jzdtEaPHaBHJpWj+YHGkLMoooIcLHwR2jEeH9QNm93GpoenkdD5btu5oArSzJS28d V/P6uJwKx63lO17CxxabZDZDZs/1R+gXlr6z/tQhC67TIOfOFsZcAfAzQvcQp5hgYk t9+d/GvxJs9ZqXPDoB7k94pR6xNckStELDkGabE8= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Charles Keepax , Vinod Koul , Takashi Iwai , Sasha Levin Subject: [PATCH AUTOSEL 4.19 26/42] ALSA: compress: Be more restrictive about when a drain is allowed Date: Fri, 2 Aug 2019 09:22:46 -0400 Message-Id: <20190802132302.13537-26-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190802132302.13537-1-sashal@kernel.org> References: <20190802132302.13537-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Charles Keepax [ Upstream commit 3b8179944cb0dd53e5223996966746cdc8a60657 ] Draining makes little sense in the situation of hardware overrun, as the hardware will have consumed all its available samples. Additionally, draining whilst the stream is paused would presumably get stuck as no data is being consumed on the DSP side. Signed-off-by: Charles Keepax Acked-by: Vinod Koul Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin --- sound/core/compress_offload.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c index 9c1684f01aca0..516ec35873256 100644 --- a/sound/core/compress_offload.c +++ b/sound/core/compress_offload.c @@ -812,7 +812,10 @@ static int snd_compr_drain(struct snd_compr_stream *stream) case SNDRV_PCM_STATE_OPEN: case SNDRV_PCM_STATE_SETUP: case SNDRV_PCM_STATE_PREPARED: + case SNDRV_PCM_STATE_PAUSED: return -EPERM; + case SNDRV_PCM_STATE_XRUN: + return -EPIPE; default: break; } @@ -861,7 +864,10 @@ static int snd_compr_partial_drain(struct snd_compr_stream *stream) case SNDRV_PCM_STATE_OPEN: case SNDRV_PCM_STATE_SETUP: case SNDRV_PCM_STATE_PREPARED: + case SNDRV_PCM_STATE_PAUSED: return -EPERM; + case SNDRV_PCM_STATE_XRUN: + return -EPIPE; default: break; } -- 2.20.1