Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1290592pxf; Fri, 12 Mar 2021 06:34:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJxfxFGP81W3UPUo+qvHXRNWE85tinaMW3zmzz5CsZ20G7dvTpgIbih8jYhsBEs2ZjjW8oEe X-Received: by 2002:a17:906:75a:: with SMTP id z26mr8760944ejb.22.1615559670732; Fri, 12 Mar 2021 06:34:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615559670; cv=none; d=google.com; s=arc-20160816; b=aYEEX8+2EqUYrLDZjBrij2S3hxgGuUy5O6SpiE8JF/uMULtoId9AW3wMclcRZT1CZT OQy6bagK3KWNk7bfHyPIAQ2RSrsgNJvLAFixch/HQZXuHFjvCkVjAxda3AP/LtO/q5Hi g397dDz2X0iKTvL3ltxO9eJCw0Ww6RUIE6ll2YTavPVy/78I8B+7FuB4PRAjy5OmTqdo iQ8YAhX3aiHtIot8l64bjm/RTBBL6GHeygK7Q5xdKhj+9EbbpyDfpo8RxIn+I6SKBcFU +5rt10XNeP4gqQ7Gz8mtdPglgzV63Xy2BmvbBJLhDkGzwpcER6QIlsGK5cgP+s7xnja2 vqXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=jYWBWGPslrTsdvQcpQPCxo3kqZzw09jUK1b2tFevZ6U=; b=p6g8wJCuEQOPwlWVOoGv5v4sdcj+UMX1fQY+x8rX7w3WX8piu8Z8VvzU+o6twJyqA6 j6dDrdhJ5y8scPxe0mXtSmSCpecwBwpzB8lWWvxSUcx30TEmiIjo+cVXYC7KLFVS4Pz3 q34BQZwsjioaqW2istJRTrTMicQD63H4r+8hQwuqrrLeDHQmuhgf9oL6o/o6pzn0vdVB 2LOI8kC6NG4iEZ+b4bBhLgxOud8hTcsnE5EAzceFjaMhFa8KdqwESU4o3eK1gy+eKp4m W+w/dqgSp4lnmRkLM2s6Nke0Klimdnr0BA5vTwL0g2er0SnXBF0m+RwDGCpL42dEb6pJ qpNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=GXJlYP09; 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 b26si4418508ejb.374.2021.03.12.06.34.07; Fri, 12 Mar 2021 06:34:30 -0800 (PST) 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=GXJlYP09; 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 S231578AbhCLOas (ORCPT + 99 others); Fri, 12 Mar 2021 09:30:48 -0500 Received: from mail.kernel.org ([198.145.29.99]:33606 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229959AbhCLOak (ORCPT ); Fri, 12 Mar 2021 09:30:40 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 812F864FD6; Fri, 12 Mar 2021 14:30:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1615559440; bh=RLoJPBHkPRJOJbwxoSVQh2GJ5vCNj2ZFWVNZnj/3erY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=GXJlYP09bBg42nP8uZuWROFha3lSNtSAeLY5CtlrfB+pfG6VaAyjLXyfQWYS3m2br 7p4/Vu39DhOQ82QJfmTOkoumhIbGefrokCDw3ZXJZNuqCBgM9sfrbvzRpgsr8Q0vd1 GUQbTf8s0Tgq6hzzRO4aFrStUV1s849JE2uo6xXs= Date: Fri, 12 Mar 2021 15:30:37 +0100 From: Greg KH To: Lv Yunlong Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] usb/usbtmc: Remove a redundant kref_put in usbtmc_disconnect Message-ID: References: <20210311150354.8723-1-lyl2019@mail.ustc.edu.cn> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210311150354.8723-1-lyl2019@mail.ustc.edu.cn> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 11, 2021 at 07:03:54AM -0800, Lv Yunlong wrote: > In the implementation of usbtmc_free_int(), it already calls > kref_put() to free the data as shown below. So, in > usbtmc_disconnect, call an extra kref_put() is redundant. > > """ > static void usbtmc_free_int(struct usbtmc_device_data *data) > { > if (!data->iin_ep_present || !data->iin_urb) > return; > usb_kill_urb(data->iin_urb); > kfree(data->iin_buffer); > data->iin_buffer = NULL; > usb_free_urb(data->iin_urb); > data->iin_urb = NULL; > kref_put(&data->kref, usbtmc_delete); > } > """ > > Signed-off-by: Lv Yunlong > --- > drivers/usb/class/usbtmc.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c > index 74d5a9c5238a..adcdd2df1949 100644 > --- a/drivers/usb/class/usbtmc.c > +++ b/drivers/usb/class/usbtmc.c > @@ -2494,7 +2494,6 @@ static void usbtmc_disconnect(struct usb_interface *intf) > } > mutex_unlock(&data->io_mutex); > usbtmc_free_int(data); > - kref_put(&data->kref, usbtmc_delete); Did you test this change? If not, please do so, I think the code is fine as-is. thanks, greg k-h