Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp543398pxa; Tue, 11 Aug 2020 09:04:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxtMUtDOgz+H9dhd/QrOI1Mv2ktrjYd9cfmgn6rRNg24g/udqKZajvEbgWIM3WwlUiBVCcO X-Received: by 2002:a50:e611:: with SMTP id y17mr25958298edm.376.1597161890753; Tue, 11 Aug 2020 09:04:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597161890; cv=none; d=google.com; s=arc-20160816; b=BnmDMgfTyQK4tuXwEskzMTXDFxr+AwZ6dp8XFVXMEeF8pf627y7OAZ1DXGtSgM78tY s3qNVIbDdMq5J5qHMRjIjoEr8+EQwNm/6RhxeObNyWiFDPfxgadqDxGyR17EqeWfk7Rq kyOmMFUuULYQEyu9Rppkk6dheigEcxTTWO+nXXjTFHiL1UxPS79gMgOGGl4jgxg0gsjb IQxDxxNXZb/ODrUPlJILiVBWbWfEAHGx6WwEMSe4U73iBuW1wjMKRFrzDIXdedYP8cnv ym+GeuyBQHJv5wDcWPGuiCi2aNqx8m2DEencdtFHnrdm+J5t6WjzVbwgribzFSZ2+l4S xA+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=PfIkKH3L+Q54Wg68D/Okm/rjZx0xwp2l1gW6SI8x7Xk=; b=aFWo5Exd8/WeNQ+EfOFtZ+X5q/alnx5t++ygj3GjF1tG3eD1CjpeRmnQ0WGEtRlQdZ IzMkge/c+h9Yf8MvU6XciAmyXzn9HlHNSRdDEXwIT+rePTejGrlS19fa0Ebzu/iTVNP6 U90lli5JO+sx9WYTAnX4/agsvWRlzCtdnzf93CR4juc2lGUq6/lQVncFni6jyxBYidfn 4dZ8MYV6UsNNBcuUhxFU/+ywx5ucsdUwpo4cQX5YOSpA/eYezO/JTa0OL4XNK4rz3NIy ZdgUGeq/wmWdNTDMtkQVkdVlxjbXTsmKi90HRZw7XqCjCaO3h2S3l27SDlA/CP9Uhyu9 H5Fg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w13si13008406edr.565.2020.08.11.09.04.26; Tue, 11 Aug 2020 09:04:50 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728963AbgHKQDt (ORCPT + 99 others); Tue, 11 Aug 2020 12:03:49 -0400 Received: from netrider.rowland.org ([192.131.102.5]:37653 "HELO netrider.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1728797AbgHKQDt (ORCPT ); Tue, 11 Aug 2020 12:03:49 -0400 Received: (qmail 337967 invoked by uid 1000); 11 Aug 2020 12:03:48 -0400 Date: Tue, 11 Aug 2020 12:03:48 -0400 From: Alan Stern To: trix@redhat.com Cc: gregkh@linuxfoundation.org, acozzette@cs.hmc.edu, linux-usb@vger.kernel.org, usb-storage@lists.one-eyed-alien.net, linux-kernel@vger.kernel.org Subject: Re: [PATCH] USB: realtek_cr: fix return check for dma functions Message-ID: <20200811160348.GD335280@rowland.harvard.edu> References: <20200811151505.12222-1-trix@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200811151505.12222-1-trix@redhat.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 11, 2020 at 08:15:05AM -0700, trix@redhat.com wrote: > From: Tom Rix > > clang static analysis reports this representative problem > > realtek_cr.c:639:3: warning: The left expression of the compound > assignment is an uninitialized value. The computed value will > also be garbage > SET_BIT(value, 2); > ^~~~~~~~~~~~~~~~~ > > value is set by a successful call to rts51x_read_mem() > > retval = rts51x_read_mem(us, 0xFE77, &value, 1); > if (retval < 0) > return -EIO; > > A successful call to rts51x_read_mem returns 0, failure can > return positive and negative values. This check is wrong > for a number of functions. Fix the retval check. > > Fixes: 065e60964e29 ("ums_realtek: do not use stack memory for DMA") > Signed-off-by: Tom Rix > --- > drivers/usb/storage/realtek_cr.c | 36 ++++++++++++++++---------------- > 1 file changed, 18 insertions(+), 18 deletions(-) > > diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c > index 3789698d9d3c..b983753e2368 100644 > --- a/drivers/usb/storage/realtek_cr.c > +++ b/drivers/usb/storage/realtek_cr.c > @@ -481,16 +481,16 @@ static int enable_oscillator(struct us_data *us) > u8 value; > > retval = rts51x_read_mem(us, 0xFE77, &value, 1); > - if (retval < 0) > + if (retval != STATUS_SUCCESS) > return -EIO; Instead of changing all these call sites, wouldn't it be a lot easier just to change rts51x_read_mem() to make it always return a negative value (such as -EIO) when there's an error? Alan Stern