From patchwork Tue Oct 25 12:01:55 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Binoy Jayan X-Patchwork-Id: 79157 Delivered-To: patch@linaro.org Received: by 10.140.97.247 with SMTP id m110csp3072121qge; Tue, 25 Oct 2016 05:02:51 -0700 (PDT) X-Received: by 10.98.137.206 with SMTP id n75mr38856342pfk.132.1477396971027; Tue, 25 Oct 2016 05:02:51 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u71si14105402pgd.117.2016.10.25.05.02.50; Tue, 25 Oct 2016 05:02:51 -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 S1758874AbcJYMC1 (ORCPT + 27 others); Tue, 25 Oct 2016 08:02:27 -0400 Received: from mail-pf0-f179.google.com ([209.85.192.179]:36266 "EHLO mail-pf0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758762AbcJYMCU (ORCPT ); Tue, 25 Oct 2016 08:02:20 -0400 Received: by mail-pf0-f179.google.com with SMTP id e6so118529916pfk.3 for ; Tue, 25 Oct 2016 05:02:20 -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=3kFfEYcruzH7yPl0bYKT7nL5pS1BKurtZ0jsqU+XOEc=; b=Yrsx4ALpHbEx2u6O5Zcq5n+PpzR/ITGKcrvp45TmtzsK2/y8NDREExAVoFlP4rCDbX AFrzuyKW2MBCh9Ne+mwXxa7AyoVUsEKW4i7mZsQDo4AbUgYBVu3aa8xu8UDGzN3Gg+UT Wa32ffOfK2moL7eAVR9xYqY7pJH3rH6edkuAw= 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=3kFfEYcruzH7yPl0bYKT7nL5pS1BKurtZ0jsqU+XOEc=; b=GiO+alsmkohhjfA6SvpwtB7l0bJsiCvSjDF0nHyPQcACGl4rBHUgt0aSi4hm8bMpW6 n09lLjVM0CJi3Wqir9ST3LENiq6wjINm7N2I6KfhkC0WVMh2DA2MN+1zSXNn7IqpxtF/ ds/sdEtVz3zUmsQEZzPbKbydj8XbIkaNHkMXLr5/MWDWKFhTVZvnuYTUwDy//OLUmbZz rJzhNYsxvftyK+++gq4+aS1c3ZwIw5Uqa0ESa8wmJOI1lvuaFz0IlDtpnDwYiwmWNMAd ylTnbWaE0FJgUY+vRSa0gIdowL9FhMveP9Q3s3Rt7ENo1qLliGDbbkujNd9XR4ugF4t0 Tudw== X-Gm-Message-State: ABUngvd/Bt2Qt3gJwPsfR3P/nGfeRp1kLKkHL4nysPP6bcL5EQIJ6gjKArVjaYzMwBE2wNE7 X-Received: by 10.98.23.212 with SMTP id 203mr3817084pfx.21.1477396940019; Tue, 25 Oct 2016 05:02:20 -0700 (PDT) Received: from blr-ubuntu-59.ap.qualcomm.com ([202.46.23.61]) by smtp.gmail.com with ESMTPSA id ij5sm33051828pab.2.2016.10.25.05.02.17 (version=TLS1_1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 25 Oct 2016 05:02:19 -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 v2 4/8] IB/mthca: Replace semaphore poll_sem with mutex Date: Tue, 25 Oct 2016 17:31:55 +0530 Message-Id: <1477396919-27669-5-git-send-email-binoy.jayan@linaro.org> X-Mailer: git-send-email 1.8.2.1 In-Reply-To: <1477396919-27669-1-git-send-email-binoy.jayan@linaro.org> References: <1477396919-27669-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 the semaphore 'poll_sem' 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;