lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 21 Nov 2016 11:38:10 +0530 From: Binoy Jayan <binoy.jayan@...aro.org> To: Doug Ledford <dledford@...hat.com>, Sean Hefty <sean.hefty@...el.com>, Sagi Grimberg <sagi@...mberg.me>, Hal Rosenstock <hal.rosenstock@...il.com>, Leon Romanovsky <leonro@...lanox.com>, Sagi Grimberg <sagig@...lanox.com>, Bart Van Assche <bart.vanassche@...disk.com>, Nicholas Bellinger <nab@...ux-iscsi.org>, Jenny Derzhavetz <jennyf@...lanox.com>, Ira Weiny <ira.weiny@...el.com>, Steve Wise <swise@...ngridcomputing.com>, Mark Bloch <markb@...lanox.com>, Tatyana E Nikolova <tatyana.e.nikolova@...el.com>, Matan Barak <matanb@...lanox.com>, Lijun Ou <oulijun@...wei.com>, "Wei Hu(Xavier)" <xavier.huwei@...wei.com> Cc: Faisal Latif <faisal.latif@...el.com>, Mustafa Ismail <mustafa.ismail@...el.com>, Mark Brown <broonie@...nel.org>, Arnd Bergmann <arnd@...db.de>, linux-rdma@...r.kernel.org, linux-kernel@...r.kernel.org, target-devel@...r.kernel.org, Binoy Jayan <binoy.jayan@...aro.org> Subject: [PATCH v5 3/9] IB/hns: Replace semaphore poll_sem with mutex 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 <binoy.jayan@...aro.org> --- drivers/infiniband/hw/hns/hns_roce_cmd.c | 11 ++++------- drivers/infiniband/hw/hns/hns_roce_device.h | 3 ++- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/infiniband/hw/hns/hns_roce_cmd.c b/drivers/infiniband/hw/hns/hns_roce_cmd.c index 2a0b6c0..51a0675 100644 --- a/drivers/infiniband/hw/hns/hns_roce_cmd.c +++ b/drivers/infiniband/hw/hns/hns_roce_cmd.c @@ -119,7 +119,7 @@ static int hns_roce_cmd_mbox_post_hw(struct hns_roce_dev *hr_dev, u64 in_param, return ret; } -/* this should be called with "poll_sem" */ +/* this should be called with "poll_mutex" */ static int __hns_roce_cmd_mbox_poll(struct hns_roce_dev *hr_dev, u64 in_param, u64 out_param, unsigned long in_modifier, u8 op_modifier, u16 op, @@ -167,10 +167,10 @@ static int hns_roce_cmd_mbox_poll(struct hns_roce_dev *hr_dev, u64 in_param, { int ret; - down(&hr_dev->cmd.poll_sem); + mutex_lock(&hr_dev->cmd.poll_mutex); ret = __hns_roce_cmd_mbox_poll(hr_dev, in_param, out_param, in_modifier, op_modifier, op, timeout); - up(&hr_dev->cmd.poll_sem); + mutex_unlock(&hr_dev->cmd.poll_mutex); return ret; } @@ -275,7 +275,7 @@ int hns_roce_cmd_init(struct hns_roce_dev *hr_dev) struct device *dev = &hr_dev->pdev->dev; mutex_init(&hr_dev->cmd.hcr_mutex); - sema_init(&hr_dev->cmd.poll_sem, 1); + mutex_init(&hr_dev->cmd.poll_mutex); hr_dev->cmd.use_events = 0; hr_dev->cmd.toggle = 1; hr_dev->cmd.max_cmds = CMD_MAX_NUM; @@ -319,8 +319,6 @@ int hns_roce_cmd_use_events(struct hns_roce_dev *hr_dev) hr_cmd->token_mask = CMD_TOKEN_MASK; hr_cmd->use_events = 1; - down(&hr_cmd->poll_sem); - return 0; } @@ -335,7 +333,6 @@ void hns_roce_cmd_use_polling(struct hns_roce_dev *hr_dev) down(&hr_cmd->event_sem); kfree(hr_cmd->context); - up(&hr_cmd->poll_sem); } struct hns_roce_cmd_mailbox diff --git a/drivers/infiniband/hw/hns/hns_roce_device.h b/drivers/infiniband/hw/hns/hns_roce_device.h index 3417315..2afe075 100644 --- a/drivers/infiniband/hw/hns/hns_roce_device.h +++ b/drivers/infiniband/hw/hns/hns_roce_device.h @@ -34,6 +34,7 @@ #define _HNS_ROCE_DEVICE_H #include <rdma/ib_verbs.h> +#include <linux/mutex.h> #define DRV_NAME "hns_roce" @@ -358,7 +359,7 @@ struct hns_roce_cmdq { struct dma_pool *pool; u8 __iomem *hcr; struct mutex hcr_mutex; - struct semaphore poll_sem; + struct mutex poll_mutex; /* * Event mode: cmd register mutex protection, * ensure to not exceed max_cmds and user use limit region -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
Powered by blists - more mailing lists