Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4672045pxj; Wed, 12 May 2021 10:32:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz2fM0j9YeWjrrH2KdtAHZEjuu/XyOni+Gxh4+XBiaOGjYbUbBAkF1HBoj9xyJF8ScuMENU X-Received: by 2002:a17:906:a18e:: with SMTP id s14mr36678742ejy.311.1620840764737; Wed, 12 May 2021 10:32:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620840764; cv=none; d=google.com; s=arc-20160816; b=U3KNs6/Edm03lMhzo2CbEF3j/0cxDCsNF+DtgcCvMI55iky3gWOffQeaOTUzu2hBxv Ol8KLkXsNLu6grHSdgk7sunUVMw1naWCQ9XiCMPD20/SZftg2Qvw7pWxCs3FmP8HV75X zIaPXv5pl2LaabInUznDkEIdrTu80NbGod2i+vxSVYykAJqna1B48KVKWi9yhlY2pciI 2dkV+9kWLWfX9sp6z+mCuuL3JO6/1y8CiMaIkRc3KVLzXrIJs1LS4iAOuS6SGsxr92nO Bv1aAjmsezteTuM9SQITuDedmhenO6CebI1TSqdrQ85oYm9dn7BNwBJsJAtFHkTLMxCy Xlpg== 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=0EOc26YjiHkH/lDEdrC/ekXb/jKgr727FgD0wLRXg00=; b=CE1mg+yHBK9w3Ifb+ifVYplyZcdDOhK9KhzO3KBoqGevMXEN5s1BgyqHk3i+a79JdC kDQLp3BE9Ogh03ICO6sDRI/ZpXzW5Dpq8PmbTk2a5D1+vayl4U1HJ4HWOWtkleqOnWes qGFaLKPWjAXWTHyLAUvLsxicuvDPa0AJo8ovdOEcIXNIPfEDRz1KVvWOygu6xPXI0qzM quZjGd0LmPDt4xjcifE5NVUbIyWh9MmMUK1+9FHcQarJr79FbPy0rj2xln0AHSImkLJ8 kBrLKimSAUSdsUwHyzqJVcUaozFNjtvpGdQoiRA8ZIYTN2bT8jMr2hxGTEoXN+tgGHal CXvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=iJVfUGpY; 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 n24si462416eju.330.2021.05.12.10.32.15; Wed, 12 May 2021 10:32:44 -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=iJVfUGpY; 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 S1347277AbhELR1v (ORCPT + 99 others); Wed, 12 May 2021 13:27:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:33626 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239282AbhELQHm (ORCPT ); Wed, 12 May 2021 12:07:42 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A129761C59; Wed, 12 May 2021 15:37:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620833830; bh=Uxz7oMteSxfFHU48bBX/AmUX+Xv2sHNP8sQl4iLm4c0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iJVfUGpYomt7T0Vx099b156X35IGuiVZ5paTP2DURE+v1rlcUDxjkjV4NLj7y/865 UBTPf9I/LwZP3W4L7L+VYd81Qx4OeplzPEC+8lO1eMDSwSaFT/5bJ+pEkSzkQOzpdm yq/oxRA6qjiZofs0C1n9AQc2Yl1BRbVREQEplVxk= 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.11 306/601] soc: aspeed: fix a ternary sign expansion bug Date: Wed, 12 May 2021 16:46:23 +0200 Message-Id: <20210512144837.896496347@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144827.811958675@linuxfoundation.org> References: <20210512144827.811958675@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 20acac6342ef..5828f94b8a7d 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