Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp88097pxk; Fri, 11 Sep 2020 00:50:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzi02HbaychkkvqhtiVUS5nG1t4Y0gPzL89Zqo24IEKcH1Sl9cf7dQbR5hJjUqZNRX7PU3d X-Received: by 2002:a17:906:68cd:: with SMTP id y13mr847796ejr.132.1599810649898; Fri, 11 Sep 2020 00:50:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599810649; cv=none; d=google.com; s=arc-20160816; b=ZK240ndg8zT4/CmwwK/xKuj7RzSMAXxjK2yqmM746j8rqJd06anxGj8RNrxX3DJYbm XeEgZ7g3MlknbuF9y+N3mffORvM/tnHEdhld46zhdZn+KAjfsyVPb4e/++hluhouwCde 3GgHNRhGDJ263YNuNlzhMlx8BlzNv1YCszgjOzIoZYMW7sjskTx5dLxfCPiYtZ1p7WE1 YNphpvk/H3LYgv8N5F3t5HCVtgXCCpneMlvHTA24Z+mRtOQ1qXiZG1ibvWFitYOqhYfn rsP6paLmuPXwHk4kdWiHMRw4ursmZKKJVexBUxfLQHU9FZyEovHl8six3h/JwNhtK8Lh 9XUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=gtb3HlvKnxPP0Q10wX1ZvmIkgW0faWpGu59oFksPM+c=; b=sbU259O85T/KXUdzIgpgA3shDrbeZcG4OPK+L3Qeye1mSkONG00oCq4GTMq9+FIR/U 982FtGTzBalEbc2DbUGwVJRLxEqV8fkk3tvPh3NKa6H20lbciEQMt2AaZ22JMCiHaCTe 2gyBr0rtfjHSHVI56CI0pYlbIOSjTZ4UTY4UxXLPSY5VpzBo3tZfalxdbomz+B6FGa6B NycfE2p/+8lV2ZHkaX+fHcVC1d0g1Uejx3Bmjux9+w7dfBKoOjhl3GzqdUcUXolMB/2Y QNsZF4YCCF0dFrqMTdnJy2TVvbqU8f8Z02/b+bK12zM8WC6pjhSw5KR+eXIzdcPuYhMv XVVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Bv7hWyU8; 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=fail (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 q23si805291ejn.400.2020.09.11.00.50.27; Fri, 11 Sep 2020 00:50:49 -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=@kernel.org header.s=default header.b=Bv7hWyU8; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725838AbgIKHru (ORCPT + 99 others); Fri, 11 Sep 2020 03:47:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:48016 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725766AbgIKHrr (ORCPT ); Fri, 11 Sep 2020 03:47:47 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9E1D62076C; Fri, 11 Sep 2020 07:47:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599810466; bh=I4uLoN15SZgdT8c9PzvgWvYDrFak69CCGmHCBzzkfp0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Bv7hWyU8RZyuN6jfDc5+ORLIBpvhh5aMtRwI2Nh3NJphbVWjwIZrxhoYb+DHeDr8v 8qk4qCKaaZ1kRmiPZpBF/Bc5F55Q4LGfaQ6tNdLgu8nG9ZmlvdGXOU0dWfT0N+iUsa vws3sKPZthzoylmn3VIK9R5h3RGV74Mj8e6O9IJw= Date: Fri, 11 Sep 2020 09:47:52 +0200 From: Greg KH To: Hemant Kumar Cc: manivannan.sadhasivam@linaro.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, jhugo@codeaurora.org, bbhatt@codeaurora.org Subject: Re: [PATCH v5 4/4] bus: mhi: clients: Add userspace client interface driver Message-ID: <20200911074752.GB3324216@kroah.com> References: <1596696063-17802-1-git-send-email-hemantk@codeaurora.org> <1596696063-17802-5-git-send-email-hemantk@codeaurora.org> <20200907093725.GC1393659@kroah.com> <010101747bd97269-a941d364-78ea-488c-baae-5a1c924d9e43-000000@us-west-2.amazonses.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <010101747bd97269-a941d364-78ea-488c-baae-5a1c924d9e43-000000@us-west-2.amazonses.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 11, 2020 at 06:28:02AM +0000, Hemant Kumar wrote: > > > +struct uci_dev { > > > + unsigned int minor; > > > + struct mhi_device *mhi_dev; > > > + const char *chan; > > > + > > > + /* protects uci_dev struct members */ > > > + struct mutex lock; > > > + > > > + struct uci_chan ul_chan; > > > + struct uci_chan dl_chan; > > > + size_t mtu; > > > + size_t actual_mtu; > > > + struct kref ref_count; > > > + struct kref open_count; > > > > I'm stopping right here. A structure can only have ONE reference count > > to control its lifespan. You have 2 here, which guarantees that either > > you are using a kref incorrectly, or your code is totally confused and > > will break easily. > > > > Please fix this as this is not how to do this. > > > > Also, why does anyone need to care about the number of times that open() > > is called? The vfs layer should handle all of that for you, right? > Reason for using open_count was to allow start MHI channel only when first > open() was called and stop the MHI channel when last release() is called. > Since uci driver just need to handle one open() from user space > other calls to open can simply return -EBUSY. i will get rid of open_count > and does not let multiple threads to open same file node. You will fail in trying to attempt only one open on your device node, sorry. You can properly trigger off of the first/last things, but having two different reference counts is NOT how to do this, those are to control the lifetime of a structure/object. greg k-h