From patchwork Thu Oct 27 06:59:08 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Binoy Jayan X-Patchwork-Id: 79621 Delivered-To: patch@linaro.org Received: by 10.80.142.83 with SMTP id 19csp480459edx; Thu, 27 Oct 2016 00:01:22 -0700 (PDT) X-Received: by 10.99.55.66 with SMTP id g2mr9518026pgn.65.1477551681991; Thu, 27 Oct 2016 00:01:21 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f19si6379718pgk.152.2016.10.27.00.01.21; Thu, 27 Oct 2016 00:01:21 -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 S935808AbcJ0HBR (ORCPT + 27 others); Thu, 27 Oct 2016 03:01:17 -0400 Received: from mail-pf0-f181.google.com ([209.85.192.181]:33322 "EHLO mail-pf0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933978AbcJ0G7f (ORCPT ); Thu, 27 Oct 2016 02:59:35 -0400 Received: by mail-pf0-f181.google.com with SMTP id 197so11978061pfu.0 for ; Wed, 26 Oct 2016 23:59:35 -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=12a21p2+1RiYUopa37cnypnfhyrPKY6Dt+DxTvKqxL4=; b=EVz0tl8bX0ORFkkfQFe3ePLaYXEusd4FPUMCfccX2JTUKwYJDpOT4aAh94caZ3cV+c 0ohLYzCjcIa5c8ivD1QZNbggaz9r4sofea/ruJ5RLuGOyliiZMGPlGZC9HqzPmBypW0H 8I1t8FvKtNnhRIDEikrUYDmxthHylCRWhqh34= 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=12a21p2+1RiYUopa37cnypnfhyrPKY6Dt+DxTvKqxL4=; b=NnI4uFzZkjlgh8yGyUAn1cFdPFmUYqA6CDlzHstqDu8mcNoNtaLgvXNvPmRcz+z9i7 shO8rILrjpVC5a2yI1A/vOtDr6hSBzSda/8rN8rnTU8Eez+BogVWzsYvyyAavNz/4tRI hVaPTuCQgtdw+HdRZr8zFJexbOHfOpqoJrLPcKWK/mD3o+zlXTNO2VmnCg2vDsc/7miu tKEFBLTDEGv7V8c2ps7vRqxbSCPJsCFpEXL+zgtGyuK0JDOxGGq/4wUmOcYWDpB10E8v C2mHayOXXnQTbYHgnz9RIVvq6zd2dVdLRFBvXqSUwsogRXtqF+ISiBETO72kwsMpnHc/ EZVg== X-Gm-Message-State: ABUngveunbbSXSnrZl1FmGpJ0kSadsc6nA4tp4sfpH4vUpwe00y+tvTlUB02UjeANO3OHuRq X-Received: by 10.99.173.3 with SMTP id g3mr9729220pgf.12.1477551574803; Wed, 26 Oct 2016 23:59:34 -0700 (PDT) Received: from blr-ubuntu-59.ap.qualcomm.com ([202.46.23.61]) by smtp.gmail.com with ESMTPSA id w24sm8795544pfa.12.2016.10.26.23.59.31 (version=TLS1_1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 26 Oct 2016 23:59:34 -0700 (PDT) From: Binoy Jayan To: Doug Ledford , Sean Hefty , Hal Rosenstock Cc: Arnd Bergmann , linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, Binoy Jayan Subject: [PATCH v4 04/10] IB/mthca: Replace semaphore poll_sem with mutex Date: Thu, 27 Oct 2016 12:29:08 +0530 Message-Id: <1477551554-30349-5-git-send-email-binoy.jayan@linaro.org> X-Mailer: git-send-email 1.8.2.1 In-Reply-To: <1477551554-30349-1-git-send-email-binoy.jayan@linaro.org> References: <1477551554-30349-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 'poll_sem' is a simple mutex, so it should be written as one. Semaphores are going away in the future. So replace it with a mutex. Also, remove mutex_[un]lock from mthca_cmd_use_events and mthca_cmd_use_polling respectively. Signed-off-by: Binoy Jayan --- drivers/infiniband/hw/mthca/mthca_cmd.c | 10 +++------- drivers/infiniband/hw/mthca/mthca_cmd.h | 1 + drivers/infiniband/hw/mthca/mthca_dev.h | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c index c7f49bb..49c6e19 100644 --- a/drivers/infiniband/hw/mthca/mthca_cmd.c +++ b/drivers/infiniband/hw/mthca/mthca_cmd.c @@ -347,7 +347,7 @@ static int mthca_cmd_poll(struct mthca_dev *dev, unsigned long end; u8 status; - down(&dev->cmd.poll_sem); + mutex_lock(&dev->cmd.poll_mutex); err = mthca_cmd_post(dev, in_param, out_param ? *out_param : 0, @@ -382,7 +382,7 @@ static int mthca_cmd_poll(struct mthca_dev *dev, } out: - up(&dev->cmd.poll_sem); + mutex_unlock(&dev->cmd.poll_mutex); return err; } @@ -520,7 +520,7 @@ static int mthca_cmd_imm(struct mthca_dev *dev, int mthca_cmd_init(struct mthca_dev *dev) { mutex_init(&dev->cmd.hcr_mutex); - sema_init(&dev->cmd.poll_sem, 1); + mutex_init(&dev->cmd.poll_mutex); dev->cmd.flags = 0; dev->hcr = ioremap(pci_resource_start(dev->pdev, 0) + MTHCA_HCR_BASE, @@ -582,8 +582,6 @@ int mthca_cmd_use_events(struct mthca_dev *dev) dev->cmd.flags |= MTHCA_CMD_USE_EVENTS; - down(&dev->cmd.poll_sem); - return 0; } @@ -600,8 +598,6 @@ void mthca_cmd_use_polling(struct mthca_dev *dev) down(&dev->cmd.event_sem); kfree(dev->cmd.context); - - up(&dev->cmd.poll_sem); } struct mthca_mailbox *mthca_alloc_mailbox(struct mthca_dev *dev, diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.h b/drivers/infiniband/hw/mthca/mthca_cmd.h index d2e5b19..a7f197e 100644 --- a/drivers/infiniband/hw/mthca/mthca_cmd.h +++ b/drivers/infiniband/hw/mthca/mthca_cmd.h @@ -35,6 +35,7 @@ #ifndef MTHCA_CMD_H #define MTHCA_CMD_H +#include #include #define MTHCA_MAILBOX_SIZE 4096 diff --git a/drivers/infiniband/hw/mthca/mthca_dev.h b/drivers/infiniband/hw/mthca/mthca_dev.h index 4393a02..87ab964 100644 --- a/drivers/infiniband/hw/mthca/mthca_dev.h +++ b/drivers/infiniband/hw/mthca/mthca_dev.h @@ -120,7 +120,7 @@ enum { struct mthca_cmd { struct pci_pool *pool; struct mutex hcr_mutex; - struct semaphore poll_sem; + struct mutex poll_mutex; struct semaphore event_sem; int max_cmds; spinlock_t context_lock;