From patchwork Wed Jun 8 07:50:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Binoy Jayan X-Patchwork-Id: 69586 Delivered-To: patch@linaro.org Received: by 10.140.106.246 with SMTP id e109csp2358684qgf; Wed, 8 Jun 2016 00:51:52 -0700 (PDT) X-Received: by 10.66.145.195 with SMTP id sw3mr4343740pab.36.1465372312672; Wed, 08 Jun 2016 00:51:52 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c74si39897874pfk.221.2016.06.08.00.51.52; Wed, 08 Jun 2016 00:51:52 -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=@linaro.org; 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 dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1422900AbcFHHvt (ORCPT + 31 others); Wed, 8 Jun 2016 03:51:49 -0400 Received: from mail-pa0-f46.google.com ([209.85.220.46]:34340 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1422829AbcFHHvB (ORCPT ); Wed, 8 Jun 2016 03:51:01 -0400 Received: by mail-pa0-f46.google.com with SMTP id bz2so112381pad.1 for ; Wed, 08 Jun 2016 00:51:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=OEZvEEvFKY8UL9YATG1iKW4eCQ5dp4oq+fTVgb7uJJM=; b=R1KxRVAiDtj1kdtk2tPfy5N9rwtVL0dWt59gyqX8sH5E58j+x7ccWBTkd/nbiMhywv 7gah0uDU3KD1S2k85dQXzApOhXiBspiTZuOH4ZdsYnUQ2b4grdZYC+7XaREy2uLtgi6U SrI0DHKgkB8OBvp3VSrm4p1iLaeYEfs3cFgbc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=OEZvEEvFKY8UL9YATG1iKW4eCQ5dp4oq+fTVgb7uJJM=; b=dfrF35+zgEltYaFBtMgZy5MZCGYw3xmM6XxtGrn7E2A+AkkIo+iTm4xd9gBpGVPu5c 5PV1Tfk0oKvnW7EJt523n5IAWDZ1/TcanCTCOBbiCkd6ekD+7J725zb+J/kMlqvEvJ1f /i8KZy5HHHm6kKeY5yVCu+FoHqpezejMDP64/k0v6+rXWLZds9C4l6mNneLV5Qzu1Tmk vSRMUyG3BhK27PwUqnDqRmrGsoUONqROen6JxmA/yLQPX26VR7ZN5xYcsiMmc3dmsZnP nZwJvgssHPYlVa/TVptcotwSj8Dlw/Qbs3gnCxTmC2mWYJFe40OMN/2VVUDvmXYXx5en SMyg== X-Gm-Message-State: ALyK8tJIKz81jJArBiVrUcFRKUv8bv637lQEq/lcJ2lnCaGmcjXX4Y0HbuJ6CjXlxhyX/A7a X-Received: by 10.67.2.8 with SMTP id bk8mr4360578pad.150.1465372260445; Wed, 08 Jun 2016 00:51:00 -0700 (PDT) Received: from blr-ubuntu-59.ap.qualcomm.com ([202.46.23.61]) by smtp.gmail.com with ESMTPSA id x71sm40438095pfj.43.2016.06.08.00.50.57 (version=TLS1_1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 08 Jun 2016 00:50:59 -0700 (PDT) From: Binoy Jayan To: Greg Kroah-Hartman , Oleg Drokin , Andreas Dilger , lustre-devel@lists.lustre.org Cc: Arnd Bergmann , driverdev-devel@linuxdriverproject.org, linux-kernel@vger.kernel.org, Binoy Jayan Subject: [PATCH 2/2] staging: lustre: lnet: Replace semaphore ln_rc_signal with completion Date: Wed, 8 Jun 2016 13:20:42 +0530 Message-Id: <1465372242-7116-3-git-send-email-binoy.jayan@linaro.org> X-Mailer: git-send-email 1.8.2.1 In-Reply-To: <1465372242-7116-1-git-send-email-binoy.jayan@linaro.org> References: <1465372242-7116-1-git-send-email-binoy.jayan@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The semaphore ln_rc_signal is used as completion, so convert it to struct completion. Semaphores are going away in the future. Signed-off-by: Binoy Jayan --- drivers/staging/lustre/include/linux/lnet/lib-types.h | 3 ++- drivers/staging/lustre/lnet/lnet/router.c | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project diff --git a/drivers/staging/lustre/include/linux/lnet/lib-types.h b/drivers/staging/lustre/include/linux/lnet/lib-types.h index 24c4a08..7967b01 100644 --- a/drivers/staging/lustre/include/linux/lnet/lib-types.h +++ b/drivers/staging/lustre/include/linux/lnet/lib-types.h @@ -38,6 +38,7 @@ #include #include #include +#include #include "types.h" #include "lnetctl.h" @@ -610,7 +611,7 @@ typedef struct { /* rcd ready for free */ struct list_head ln_rcd_zombie; /* serialise startup/shutdown */ - struct semaphore ln_rc_signal; + struct completion ln_rc_signal; struct mutex ln_api_mutex; struct mutex ln_lnd_mutex; diff --git a/drivers/staging/lustre/lnet/lnet/router.c b/drivers/staging/lustre/lnet/lnet/router.c index b01dc42..0635432 100644 --- a/drivers/staging/lustre/lnet/lnet/router.c +++ b/drivers/staging/lustre/lnet/lnet/router.c @@ -18,6 +18,7 @@ */ #define DEBUG_SUBSYSTEM S_LNET +#include #include "../../include/linux/lnet/lib-lnet.h" #define LNET_NRB_TINY_MIN 512 /* min value for each CPT */ @@ -1065,7 +1066,7 @@ lnet_router_checker_start(void) return -EINVAL; } - sema_init(&the_lnet.ln_rc_signal, 0); + init_completion(&the_lnet.ln_rc_signal); rc = LNetEQAlloc(0, lnet_router_checker_event, &the_lnet.ln_rc_eqh); if (rc) { @@ -1079,7 +1080,7 @@ lnet_router_checker_start(void) rc = PTR_ERR(task); CERROR("Can't start router checker thread: %d\n", rc); /* block until event callback signals exit */ - down(&the_lnet.ln_rc_signal); + wait_for_completion(&the_lnet.ln_rc_signal); rc = LNetEQFree(the_lnet.ln_rc_eqh); LASSERT(!rc); the_lnet.ln_rc_state = LNET_RC_STATE_SHUTDOWN; @@ -1112,7 +1113,7 @@ lnet_router_checker_stop(void) wake_up(&the_lnet.ln_rc_waitq); /* block until event callback signals exit */ - down(&the_lnet.ln_rc_signal); + wait_for_completion(&the_lnet.ln_rc_signal); LASSERT(the_lnet.ln_rc_state == LNET_RC_STATE_SHUTDOWN); rc = LNetEQFree(the_lnet.ln_rc_eqh); @@ -1295,7 +1296,7 @@ rescan: lnet_prune_rc_data(1); /* wait for UNLINK */ the_lnet.ln_rc_state = LNET_RC_STATE_SHUTDOWN; - up(&the_lnet.ln_rc_signal); + complete(&the_lnet.ln_rc_signal); /* The unlink event callback will signal final completion */ return 0; }