Received: by 10.192.165.148 with SMTP id m20csp922022imm; Wed, 25 Apr 2018 09:40:01 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+eNCOcMALNrXATzFmL0g9nv2pcyRPEA4U7/oKQ6b7xqg2q8kjTVPsxvVLJl6rMQmvd5bIB X-Received: by 10.99.167.4 with SMTP id d4mr17026869pgf.324.1524674401470; Wed, 25 Apr 2018 09:40:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524674401; cv=none; d=google.com; s=arc-20160816; b=BYM3PaVyxugP4KsibTdxABuetPBSWqkKawS9mCkTjDSd6t6HVmEUIUzeNGrIUuHL96 89Ktq3VCJ0lZkeF1GBk2nC5G/glaqwSyGXdYMMdYPWlHObUa8D1JpqvHA7OAXZI7wVsa jw3EnVw0HSO4aU2c62daxp3t1c/zDql8QpNhWbmkPP8a9I3Xjje1BCfgYVa5ipS7QnC6 KowJMaE2tlOoTwxwW9ilBNhhSjnjiRMI/RHq3d0D67BRm77IOhfe1UnBblU0A128n/QN YH9+Wx4ZNBxz+xLwRNAhJS62guT81eZ753PEUexaXTpB/EcwamtLM/BKBR6+TuCY2mMH gzgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=CWIxWL+tnPD2b4e8FCJgI/bfBWPGXIU5HeVZxuLxTXM=; b=xBRAlXoNZZI6gwv9sMro3TVy6RKQh+is/i4o8eTasvgZljRg+zF+NfGvhgxoKjk024 UKxegfHK/FewlKpt/oibwtIPSaY3FktAyb6LpKupmLwcFzgMTjXhrFVblB/3Piyljc+/ XChC1YsLMfAPHo+4HHpxdLNMusfONd/BIXs0UbJQ1SP3XYrA7D4S0fydss/Bp2Up1ah1 2iFpwYV2x8Tq+ICoBdgg74oCdX5NP1EXxGUOEx+/SG4qMKvOTMJBK/W3ScBCE2ywvFK3 xdnxj3AaFTPd+62Jk1zodjcfsZJBupFovZPvJWF7gbaJRrtFIRqgjMjECeTLiiFtQdnt 3Ung== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=dsW+WB3f; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t2-v6si16431379plo.235.2018.04.25.09.39.47; Wed, 25 Apr 2018 09:40:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=dsW+WB3f; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755480AbeDYQik (ORCPT + 99 others); Wed, 25 Apr 2018 12:38:40 -0400 Received: from mail-vk0-f66.google.com ([209.85.213.66]:45874 "EHLO mail-vk0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755076AbeDYQig (ORCPT ); Wed, 25 Apr 2018 12:38:36 -0400 Received: by mail-vk0-f66.google.com with SMTP id 203so14228039vka.12; Wed, 25 Apr 2018 09:38:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=CWIxWL+tnPD2b4e8FCJgI/bfBWPGXIU5HeVZxuLxTXM=; b=dsW+WB3fwiAnJoEvQHMIwF0qUHV3MsO2I/5DuYW6XziPKk204xl2/M+eyn5Mi4+nQn 7WoX9kAZYxQu4cAbz05gggbz1BEgbKc1WO/LaAqfdK3zAxkH70yisazqyi/WyVFwP+nt zy85jw2+gtPRO16X36CjNhKN5IFkT/FrY3zh3cketEttoK3NqXYKIaeonnDm5pEoDKtl FMiJ4csJOgQEctwQJBEw9CG7PJ2uNG3TdDPD0VhTp5LnVMjbIhHm0Zxa6jfatQI7LQP0 1R++1pnGDGavJJvC0HZB6o7w0CfIAuRQo+vZF2TXxAdjDZUggCreIy3WNsQNu2YY5Szp 7jyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=CWIxWL+tnPD2b4e8FCJgI/bfBWPGXIU5HeVZxuLxTXM=; b=cmHjLU+OQ9Foo03rC2DRJV1aynQZUnpmHbR3ZPA9Jv4+Wft6rZ+X8dLmhYc9yCmvbJ J39KUrL2mQdN54CAQBmPy+QLg2HRSSZWCo+tD+QyMLWEWS+8zzQbrZS2+DA2g7nOuYs3 ZgHurTWkxolHGAO/Nk/DzdV06+D5FZhi4/OufuoyiQ/gynDWkJuxMYXHN2p6UQgbjgCQ UiOG0PnyfJzxrPAq91BfVKDizXa5Rgs5TPBTLAAxHQ+ivQdTbx87T90CPlFKxkzvanSd 7GBKOLh0r9m0XfgGzOE90/Rmv3qRwXrP1kn24Fm6kyD0Y3NX2PsrnXzurBx1IWscT0Xn TJ+A== X-Gm-Message-State: ALQs6tA7E+sVDTiKgvVV+uhsL6wIv59cNazwsWqLgLt5jCmCSjDKsdVH Bg/xsoM21N+iCXkwAeVLFO8v6Rr+vs/e6nDkKl8= X-Received: by 10.31.140.68 with SMTP id o65mr19663327vkd.193.1524674316147; Wed, 25 Apr 2018 09:38:36 -0700 (PDT) MIME-Version: 1.0 Received: by 10.103.173.8 with HTTP; Wed, 25 Apr 2018 09:38:35 -0700 (PDT) In-Reply-To: <5AE0A5FD.3060009@gmail.com> References: <5AE0A5FD.3060009@gmail.com> From: Shannon Nelson Date: Wed, 25 Apr 2018 09:38:35 -0700 Message-ID: Subject: Re: [PATCH] sparc: vio: use put_device() instead of kfree() To: arvindY Cc: Shannon Nelson , David Miller , jag.raman@oracle.com, liam.merwick@oracle.com, linux-kernel , Sparc kernel list Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Oh, yes, there it is, and the pointer to vio_dev_release() was already set up a little earlier in this function. Sorry for the noise. sln On Wed, Apr 25, 2018 at 8:59 AM, arvindY wrote: > > > On Wednesday 25 April 2018 09:14 PM, Shannon Nelson wrote: >> >> On 4/25/2018 7:56 AM, Arvind Yadav wrote: >>> >>> Never directly free @dev after calling device_register(), even >>> if it returned an error. Always use put_device() to give up the >>> reference initialized. >>> >>> Signed-off-by: Arvind Yadav >>> --- >>> arch/sparc/kernel/vio.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/arch/sparc/kernel/vio.c b/arch/sparc/kernel/vio.c >>> index 1a0fa10..32bae68 100644 >>> --- a/arch/sparc/kernel/vio.c >>> +++ b/arch/sparc/kernel/vio.c >>> @@ -403,7 +403,7 @@ static struct vio_dev *vio_create_one(struct >>> mdesc_handle *hp, u64 mp, >>> if (err) { >>> printk(KERN_ERR "VIO: Could not register device %s, err=%d\n", >>> dev_name(&vdev->dev), err); >>> - kfree(vdev); >>> + put_device(&vdev->dev); >> >> >> Hmmm... I can see why the put_device() might be a good idea, but I think >> we still need the kfree() so as to not leak the memory that was kzalloc'd >> above for vdev. >> > > There is no need to call kfree() here. Because put_device() > will decrement the last reference and then free the memory > by calling dev->release(It'll call vio_dev_release()). > Internally put_device() -> kobject_put() -> kobject_cleanup() > which is responsible to call 'dev -> release' and also free > other kobject resources. > If we will call kfree() here, Then It'll be a redundant call. > > ~arvind > > >> sln >> >>> return NULL; >>> } >>> if (vdev->dp) >>> > > -- > To unsubscribe from this list: send the line "unsubscribe sparclinux" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- ============================================== Mr. Shannon Nelson Parents can't afford to be squeamish.