Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4557420pxj; Wed, 12 May 2021 08:09:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz9LYmKVBn+DYVQ3k1JsQwcJpw3HWi7otXMUMCN+xhA0SeZINREClqBlfXXtl5O0eg+d3jz X-Received: by 2002:a05:6402:31a7:: with SMTP id dj7mr43511110edb.314.1620832165056; Wed, 12 May 2021 08:09:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620832165; cv=none; d=google.com; s=arc-20160816; b=gmbgx30joqqBs/iJl3c2RGyAmgBVNIZKJASJ2mpEI432tET7Xn1PUuYtk/c+UVyEs1 IDNPUUgvSIVA5OcgycxkRUjSYlkWPxkArYu2DP1HGUKz7tM8BM5lMguIkv2pcMCHvl+g RBiUVO956aDUkHxXtpFhcUR0WdqZsbmqMCQMCbvcjMyXLJPm9jjiuEjsPUJeR5fMnR2L +nS45BLlgcg88t9b4TDITdwBXVwiqcpfsKItI5r17XaKzMDdAORhen2T84JjtP/BKWrf vWyafzgqXPTB0lm6JwR2mKul26fbFHK2FKAJ8hn7pTDHOTzu7faMctbPaSlI0L0Akxuw Om2A== 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=UTKm1/x8sFJwc4Jw0/3E6VE55yqd0/3/eCv9JJowZFM=; b=0AoEH8YAa6QvNcqFfKqxuOtBMfu7Get23DjmW0PfjnW2McMrXP6dwK3R0zNExFvqkI k6h/I8nXLVI5WDCV+XQHqART0OTjzKvjMCjrOU1p1ztRiLEarsOb/Xd57+mso3DrsmsA 0CXTI7Pho9POGIYd2sDKiV8cF7zgD8X+tKO1wQdDoelLr3ykji5J0KtUSYmuAG94OLp0 cD6XtvxOjol36NYtDEea02cXWdowBTBswy0dC7+Np1dH6+6YsQtuiIS4Mf7m65vpIOi0 VjrO1CbZNFZ9/2JfhEHr9qxO8KyxKpTq1EhhBYmZxIhSZEPNOKH7GeUaJNdwb+59N8T+ T7lA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=LthpfIuX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t15si289761ejx.9.2021.05.12.08.09.01; Wed, 12 May 2021 08:09:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=LthpfIuX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S232918AbhELPGr (ORCPT + 99 others); Wed, 12 May 2021 11:06:47 -0400 Received: from mail.kernel.org ([198.145.29.99]:59262 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232963AbhELPC2 (ORCPT ); Wed, 12 May 2021 11:02:28 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id B3BAC6142F; Wed, 12 May 2021 14:58:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620831488; bh=q1/IcQVgXlUD0gUcHUY67siCIkWUFeOim6tCP7jKEA4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LthpfIuX39jM89rLEGjpLGo1dDNTUSsUDyW6xj/YTT25wU9KqVnTTEbZ8P7fVBYMv LU170ydCnvl2BUMo3FYQFm6yqaHmoON/G2102OwIV3+uM06mxlz6ZIvkRRfLKmnZZD yZykTja0IRonyLQmwXpsk81jgB2W6Gk8/3K9AY18= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dan Carpenter , Joel Stanley , Patrick Venture , Arnd Bergmann , Sasha Levin Subject: [PATCH 5.4 139/244] soc: aspeed: fix a ternary sign expansion bug Date: Wed, 12 May 2021 16:48:30 +0200 Message-Id: <20210512144747.462916994@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144743.039977287@linuxfoundation.org> References: <20210512144743.039977287@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dan Carpenter [ Upstream commit 5ffa828534036348fa90fb3079ccc0972d202c4a ] The intent here was to return negative error codes but it actually returns positive values. The problem is that type promotion with ternary operations is quite complicated. "ret" is an int. "copied" is a u32. And the snoop_file_read() function returns long. What happens is that "ret" is cast to u32 and becomes positive then it's cast to long and it's still positive. Fix this by removing the ternary so that "ret" is type promoted directly to long. Fixes: 3772e5da4454 ("drivers/misc: Aspeed LPC snoop output using misc chardev") Signed-off-by: Dan Carpenter Signed-off-by: Joel Stanley Reviewed-by: Patrick Venture Link: https://lore.kernel.org/r/YIE90PSXsMTa2Y8n@mwanda Link: https://lore.kernel.org/r/20210423000919.1249474-1-joel@jms.id.au' Signed-off-by: Arnd Bergmann Signed-off-by: Sasha Levin --- drivers/soc/aspeed/aspeed-lpc-snoop.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/soc/aspeed/aspeed-lpc-snoop.c b/drivers/soc/aspeed/aspeed-lpc-snoop.c index dbe5325a324d..538d7aab8db5 100644 --- a/drivers/soc/aspeed/aspeed-lpc-snoop.c +++ b/drivers/soc/aspeed/aspeed-lpc-snoop.c @@ -95,8 +95,10 @@ static ssize_t snoop_file_read(struct file *file, char __user *buffer, return -EINTR; } ret = kfifo_to_user(&chan->fifo, buffer, count, &copied); + if (ret) + return ret; - return ret ? ret : copied; + return copied; } static __poll_t snoop_file_poll(struct file *file, -- 2.30.2