From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 712F2343893; Sat, 12 Sep 2026 12:09:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789214944; cv=none; b=hs77u33d/buyw2ZtcbT7tkbfs3VJbRXKdETXQZ9WCqbvUzEDBFC26VnC4P0hOc3G/IYGMupfKZBmV2mRF8QLuN2t7CfE5Cz13dbDgnlXzeZUS/1rIPWMRp8YQPQD4BgvglHj8cafD263fgs//UZsvHv6xCw5tKuLmoOWp1rUkIo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789214944; c=relaxed/simple; bh=zmDJJEG5aqVRUhaQ/RJyK4zufhnO2IyE8IcmGCzh8Xc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WFOZ7m7yFWMBqr7SZ7bZwTsoo1EU91JxSUv//fisMDwtQe9+oGmwt8ZgIqxkmdB5aD+cpBs+TGdXppI6A7SZ2Vr1putl/L2qcEywjbofllmXDaFpdG2iDvJcFBxT6A+re7Qo5f7didDlFpdKErHevJ5t7zPwANsLiiGz0bSphck= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=FnKVCWWA; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="FnKVCWWA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 75C761F000FF; Sat, 12 Sep 2026 12:09:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1789214943; bh=UXYB1c6wQM7aM9liOfcMJ87AMHhbcThyBBL0wFEeCRQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=FnKVCWWA9IK88CAZk3xFyefyO5cdJXKNle4k9apqwE0ZfjhiGr62L5UcDO5tdu151 v0qp0RKAcjiPp9l4zpUzNpXnNZ1OdmRS5v04+b8ni7QTdgCYThQdHMiOuduT1RgT+b Su7Ji+1ZprcCx3U8jvkQDDBbA9k7C4/OqReJw124= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Evgenii Burenchev , Takashi Iwai , Sasha Levin Subject: [PATCH 6.12 0431/1376] ALSA: via82xx: Remove unreachable branch in snd_via686_pcm_pointer() Date: Sat, 12 Sep 2026 08:47:37 +0200 Message-ID: <20260912065617.140327079@linuxfoundation.org> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260912065607.535295758@linuxfoundation.org> References: <20260912065607.535295758@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 6.12-stable review patch. If anyone has any objections, please let me know. ------------------ From: Evgenii Burenchev [ Upstream commit cd3447e1b6425efd1704ed07f1f245c842927eb0 ] The condition if (count && size < count) can never evaluate to true. The VIA DMA count register is masked with 0x00ffffff before use, while the DMA buffer size is limited to 0x00fffffe bytes. As a result, 'count' can never exceed 'size', making the condition permanently false. This branch has therefore been unreachable since the driver was introduced. Remove the unreachable branch without changing runtime behavior. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Evgenii Burenchev Link: https://patch.msgid.link/20260706131638.15311-1-evg28bur@yandex.ru Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin --- sound/pci/via82xx_modem.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c index a0a49b8d15116..60235e953a62d 100644 --- a/sound/pci/via82xx_modem.c +++ b/sound/pci/via82xx_modem.c @@ -576,24 +576,18 @@ static inline unsigned int calc_linear_pos(struct via82xx_modem *chip, viadev->bufsize2, viadev->idx_table[idx].offset, viadev->idx_table[idx].size, count); #endif - if (count && size < count) { + if (! count) + /* bogus count 0 on the DMA boundary? */ + res = viadev->idx_table[idx].offset; + else + /* count register returns full size + * when end of buffer is reached + */ + res = viadev->idx_table[idx].offset + size; + if (check_invalid_pos(viadev, res)) { dev_dbg(chip->card->dev, - "invalid via82xx_cur_ptr, using last valid pointer\n"); + "invalid via82xx_cur_ptr (2), using last valid pointer\n"); res = viadev->lastpos; - } else { - if (! count) - /* bogus count 0 on the DMA boundary? */ - res = viadev->idx_table[idx].offset; - else - /* count register returns full size - * when end of buffer is reached - */ - res = viadev->idx_table[idx].offset + size; - if (check_invalid_pos(viadev, res)) { - dev_dbg(chip->card->dev, - "invalid via82xx_cur_ptr (2), using last valid pointer\n"); - res = viadev->lastpos; - } } } viadev->lastpos = res; /* remember the last position */ -- 2.53.0