From patchwork Mon Jul 3 21:08:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 9823975 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id B05DC603FB for ; Mon, 3 Jul 2017 21:11:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9F93126D05 for ; Mon, 3 Jul 2017 21:11:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 946F326E5D; Mon, 3 Jul 2017 21:11:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 32BF926D05 for ; Mon, 3 Jul 2017 21:11:10 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dS8aM-0007Zr-KB; Mon, 03 Jul 2017 21:08:46 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dS8aK-0007Yz-Re for xen-devel@lists.xen.org; Mon, 03 Jul 2017 21:08:44 +0000 Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id AB/05-02185-C52BA595; Mon, 03 Jul 2017 21:08:44 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkkeJIrShJLcpLzFFi42I5NlE2WTd6U1S kwaHHShZLPi5mcWD0OLr7N1MAYxRrZl5SfkUCa8aJy1sZC9ZzVRw/MY+9gbGLs4uRi0NIYB2T xIRjX5m6GDk5WAQcJNZMO8vWxcjBwSgQI/HghzVImFEgTGLy5SWsIDabgKHE3yeb2EBsEQFpi WufLzOCzGEWmMwo8frdL2aQhDBQ77sdTSwQM1Ultm3+DtbAK+Amcbu/E8yWEJCTOHlsMthQTg F3ifVTJrFCHNTGKPHm9x/mCYy8CxgZVjFqFKcWlaUW6RoZ6SUVZaZnlOQmZuboGhoY6+WmFhc npqfmJCYV6yXn525iBAZEPQMD4w7GqSf8DjFKcjApifK63oyMFOJLyk+pzEgszogvKs1JLT7E KMPBoSTB27gxKlJIsCg1PbUiLTMHGJowaQkOHiUR3smNQGne4oLE3OLMdIjUKUZjjg2r139h4 ng14f83JiGWvPy8VClx3l6QSQIgpRmleXCDYDFziVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5 Iw7+cNQFN4MvNK4Pa9AjqFCeiUhp4IkFNKEhFSUg2Mnvt1Uv3kNR1vNa+vVLvCUnPo6IGSLnH n476Xw799j+26tfjTEQ/OE+uTbkU0f1D/cDClrH7pmuijWZv1rvZHtp6UmxfPzSXv4cjb9eZn OedaWTlFAbe1T7STP6d9chcui43UUA/x5ZwxaSbTUfU535QlLTvOrKw9nhVb1SXLrXMtqM9Bk EWJpTgj0VCLuag4EQDDz6smlAIAAA== X-Env-Sender: sstabellini@kernel.org X-Msg-Ref: server-16.tower-31.messagelabs.com!1499116122!96154371!1 X-Originating-IP: [198.145.29.99] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.19; banners=-,-,- X-VirusChecked: Checked Received: (qmail 2856 invoked from network); 3 Jul 2017 21:08:43 -0000 Received: from mail.kernel.org (HELO mail.kernel.org) (198.145.29.99) by server-16.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 3 Jul 2017 21:08:43 -0000 Received: from localhost.localdomain (162-198-228-33.lightspeed.wlfrct.sbcglobal.net [162.198.228.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A7F4522C87; Mon, 3 Jul 2017 21:08:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A7F4522C87 From: Stefano Stabellini To: xen-devel@lists.xen.org Date: Mon, 3 Jul 2017 14:08:24 -0700 Message-Id: <1499116119-15638-3-git-send-email-sstabellini@kernel.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1499116119-15638-1-git-send-email-sstabellini@kernel.org> References: <1499116119-15638-1-git-send-email-sstabellini@kernel.org> Cc: jgross@suse.com, Stefano Stabellini , boris.ostrovsky@oracle.com, sstabellini@kernel.org, linux-kernel@vger.kernel.org Subject: [Xen-devel] [PATCH v6 03/18] xen/pvcalls: initialize the module and register the xenbus backend X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Keep a list of connected frontends. Use a semaphore to protect list accesses. Signed-off-by: Stefano Stabellini Reviewed-by: Boris Ostrovsky CC: boris.ostrovsky@oracle.com CC: jgross@suse.com Reviewed-by: Juergen Gross --- drivers/xen/pvcalls-back.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/xen/pvcalls-back.c b/drivers/xen/pvcalls-back.c index f3d0daa..9044cf2 100644 --- a/drivers/xen/pvcalls-back.c +++ b/drivers/xen/pvcalls-back.c @@ -25,6 +25,11 @@ #include #include +struct pvcalls_back_global { + struct list_head frontends; + struct semaphore frontends_lock; +} pvcalls_back_global; + static int pvcalls_back_probe(struct xenbus_device *dev, const struct xenbus_device_id *id) { @@ -59,3 +64,20 @@ static int pvcalls_back_uevent(struct xenbus_device *xdev, .uevent = pvcalls_back_uevent, .otherend_changed = pvcalls_back_changed, }; + +static int __init pvcalls_back_init(void) +{ + int ret; + + if (!xen_domain()) + return -ENODEV; + + ret = xenbus_register_backend(&pvcalls_back_driver); + if (ret < 0) + return ret; + + sema_init(&pvcalls_back_global.frontends_lock, 1); + INIT_LIST_HEAD(&pvcalls_back_global.frontends); + return 0; +} +module_init(pvcalls_back_init);