Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp543127pxy; Thu, 22 Apr 2021 07:57:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz/Hlw/m+mxOlsH1LETImAp+dx4WIm8wGE/LsgEr25WtNos8IlmHg+D8fHzVqQZZLp6BkEQ X-Received: by 2002:a17:902:e546:b029:ec:a7f5:2a88 with SMTP id n6-20020a170902e546b02900eca7f52a88mr4128043plf.21.1619103463960; Thu, 22 Apr 2021 07:57:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619103463; cv=none; d=google.com; s=arc-20160816; b=lZVRnc1MfOZkgshLiXmGM2oMRKtxTvk951ppDbNh2JU3Fpve5CfYthONI8B/TUG/d4 ywa3tMQQQLnWgTdcVaTfO0sWTKzNYIuVaOqOoEUOHUkx/qfzqX75OcmakB5REx96heb3 /PuvAl8yVK1Kps2GaWj/8Zi31EbT3BiX2uMbbqaFU40sTiSvUmQ+J3qwU99dEq/fBebA 6c/rfYA23VfmQ7CyDM6pgI+LfyilO99vNxbozoZ5svn7EImfNGxbKiGJuXXgOhGWMFcc 4i/6YSbVnDKyDkHZow/2CKxqibmPwps/GqCBZoPWc4jVcTTz1LnCZ9fB8gBeSdY8BZPY 1X6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=9cZAWfImI6VLS+4QpAMj/1HbaXFkUQw52F6CC9VLM0Y=; b=zENimTo4DMqQWfufqdaW4/Nkg+fmQtitlOhD9wPHdQjTrtdbLnpatBIIzYeR+gc1d5 003BOQjwK1kkYu1WtqKk4hhkdyww1yvmU3fnbUi2lBeQkFzSDHJLNHZAQeXRibpPdoW+ 9L+Ex2fcDs1xxS4VySYVtXLRwj2DTUqM9IhsvTCPmi43cvfGERpzaV0akotUTZcVqtL1 eblAIp60hqEdNs8zhf5F9AMqxSb806+6++45u4rmYk46To2EXBevBdiqB4nz8WgjzAqn lRktv6lXq8WnDkqLhAxDWsaF4s/wdJ2m0eHdkr7Nrkl4e4x5IdgJ3gPqeurauuX1+Pql ALmQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=XOvY2HS1; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id lr17si3414650pjb.90.2021.04.22.07.57.31; Thu, 22 Apr 2021 07:57:43 -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=@google.com header.s=20161025 header.b=XOvY2HS1; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236971AbhDVO5O (ORCPT + 99 others); Thu, 22 Apr 2021 10:57:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42552 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236439AbhDVO5N (ORCPT ); Thu, 22 Apr 2021 10:57:13 -0400 Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com [IPv6:2607:f8b0:4864:20::729]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EC80EC06174A for ; Thu, 22 Apr 2021 07:56:38 -0700 (PDT) Received: by mail-qk1-x729.google.com with SMTP id t17so18080327qkg.4 for ; Thu, 22 Apr 2021 07:56:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9cZAWfImI6VLS+4QpAMj/1HbaXFkUQw52F6CC9VLM0Y=; b=XOvY2HS1G58unBxLg5ROQPBVXB2i1rtoWGc+bbXT+2vA7bCspRWZdgzAaCCZ0bsoeu 0sF56VPYV5WfWMwnmZ3Wxy5UtjMzcrDiAqmNu/dR2bYadmmTBLf/iSiXxEjg/GGXuOxB mQDhMr9mzdoN6BH9LnOyrOJ8fRZwMpWjD26p+zcqf+J13OviGDOMnBODvZfMg016tALI qiyv/x7QuuGB5CZjIlcz701ylLLjRKDmO9O8eprkW2MllSn6Yaui2gI1s2o7s34ux3QI jegryPdr6Ar6NzYc3zJu60EBIyHDyIOrzPCcVgX/dgaHH1JrLhbUUe+0XNID6kKlHUJr 3WYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9cZAWfImI6VLS+4QpAMj/1HbaXFkUQw52F6CC9VLM0Y=; b=Q2R2OdD/zwpe3OFK6SuqmSFHbmUpJDhtBpvF5TE8bfu1N5noAFwGSwBcUnjT+spktm k490conC/pqCS0XsjS1/5Dj5T9Njeo3jjDqs7P8htmD96FlQckJUziQz2wYoHKzEOt3A x9lNRylWq65U13otpb0VuJdGFVvygulNC9FKzGZKNLNIS235suVHK6u5BsUSWMwOC0fd 73m8bdR5/EQNOp8e+2e7OGQTaLAils0nLNSz/vC+Yrhov5Vbu5wC1g8xxKcaf4scKfOe qo0ORcFHojW7o+lwMbAPmlwGp/jLAw1/cibnmtBy05GlOsWeSRfufiTdwUrdbjGnf+zY QBoQ== X-Gm-Message-State: AOAM531U3Jo9qaWlqt0mNp5GEs+jjZN4Shg0+3aplGaR2iSi4wvrL6m5 2uqPIyFtHsz4Uxyjzww/U/RxPXYbH5Zix4OhYjdM2w== X-Received: by 2002:a05:620a:52d:: with SMTP id h13mr4127770qkh.472.1619103397954; Thu, 22 Apr 2021 07:56:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Patrick Venture Date: Thu, 22 Apr 2021 07:56:27 -0700 Message-ID: Subject: Re: [PATCH] soc: aspeed: fix a ternary sign expansion bug To: Dan Carpenter Cc: Joel Stanley , Andrew Jeffery , "Chia-Wei, Wang" , Jae Hyun Yoo , John Wang , Brad Bishop , Benjamin Fair , Greg Kroah-Hartman , Robert Lippert , linux-aspeed@lists.ozlabs.org, Linux Kernel Mailing List , kernel-janitors@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 22, 2021 at 2:12 AM Dan Carpenter wrote: > > 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 Reviewed-by: Patrick Venture > --- > 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 210455efb321..eceeaf8dfbeb 100644 > --- a/drivers/soc/aspeed/aspeed-lpc-snoop.c > +++ b/drivers/soc/aspeed/aspeed-lpc-snoop.c > @@ -94,8 +94,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 >