From patchwork Tue Jun 21 23:22:10 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaehyun Lim X-Patchwork-Id: 9191541 X-Patchwork-Delegate: kvalo@adurom.com 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 AAC456075A for ; Tue, 21 Jun 2016 23:23:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9A2C128339 for ; Tue, 21 Jun 2016 23:23:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8D56B28383; Tue, 21 Jun 2016 23:23:27 +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=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A9B3828339 for ; Tue, 21 Jun 2016 23:23:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751579AbcFUXXB (ORCPT ); Tue, 21 Jun 2016 19:23:01 -0400 Received: from mail-pf0-f195.google.com ([209.85.192.195]:33677 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751545AbcFUXXA (ORCPT ); Tue, 21 Jun 2016 19:23:00 -0400 Received: by mail-pf0-f195.google.com with SMTP id c74so2284410pfb.0; Tue, 21 Jun 2016 16:22:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=YBV06b21QAHCN28LObVA56rRrti98GQT/Im0XRj6a7k=; b=VGzoyRdvDljprbQZIgUFYihra2MBl6pgoSasRFbNIi1ZTHmUPvWPFWRllRZPSXNwB2 1z+qVhHYJlNz+SAWCLKz4mr1PpuqTMJgJE07swEOsIrlEEObW/iD1ggpm5ug4xiYrxzt fEONnlNj35R6JP0o+x6QPeo8cSeMFBoDZW2RVTNCivhla+7MSdaHPRofnvqQl4xl5tpw fXzxD2R2MgevGBorwJs7Ijq5XhitAu/Lg984k1zMwzGxd/Ztq5BAOwxbxsUzPZLQUhE+ IaFeYCpQ57bAhfVVYgUAG7OBCN9l9/vtHLlVJ/FBlQCd34O5XGDIiwT2S4Vc+Cly5ide rqhg== 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; bh=YBV06b21QAHCN28LObVA56rRrti98GQT/Im0XRj6a7k=; b=RaYalUZnQqzAYLxl5Pzokvdov6OhHq2jgtjDnGQMX9xEzHxxdyeikTrL5jWK9X9UVB hOdhKTNcHt1+FdFYx4jp9HbYo0FxqeRwZRctWi0AqH4iCXSSbyzGETuwuA3/YrboUHkU gH5zAmwSMgIZFE1InN1Auwgzx0k4BKgbu74xqa9BO3bWnnVFN5UvV6pS6SZjmUsrxstB 7M1UD0RaMoLiiUYGKVAzVf6+fd8D2XTfSMBQUm8mluGugOYcpfapaGMvoTL+ijr/MT++ 7u+nE1UQ7x+aRBWbHnym4NV01J7BRhiDyCFlUE3X1uOnPK4U6MzXlnjLew8KOfbWuOak I4yg== X-Gm-Message-State: ALyK8tIwMgv8TPXS3goPRVEPBDtek6W6gVILCmAxeBy/hR16M2OmKl/Cn+xHfMWHYP+h2g== X-Received: by 10.98.10.148 with SMTP id 20mr30995839pfk.154.1466551337922; Tue, 21 Jun 2016 16:22:17 -0700 (PDT) Received: from localhost.localdomain ([218.233.16.2]) by smtp.gmail.com with ESMTPSA id qc6sm98658302pac.6.2016.06.21.16.22.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 21 Jun 2016 16:22:17 -0700 (PDT) From: Chaehyun Lim To: kvalo@qca.qualcomm.com Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, Chaehyun Lim Subject: [PATCH V2 2/2] ath6kl: replace semaphore with mutex Date: Wed, 22 Jun 2016 08:22:10 +0900 Message-Id: <20160621232210.5801-1-chaehyun.lim@gmail.com> X-Mailer: git-send-email 2.9.0 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP It replaces struct semaphore sem with struct mutex mutex Reported-by: kbuild test robot Signed-off-by: Chaehyun Lim --- V2: fix build failure reported by kbuild test robot drivers/net/wireless/ath/ath6kl/cfg80211.c | 30 +++++++++++++++--------------- drivers/net/wireless/ath/ath6kl/core.c | 2 +- drivers/net/wireless/ath/ath6kl/core.h | 2 +- drivers/net/wireless/ath/ath6kl/debug.c | 12 ++++++------ drivers/net/wireless/ath/ath6kl/init.c | 6 +++--- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c index f6b5390..d4eb066 100644 --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c @@ -480,14 +480,14 @@ static int ath6kl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, return -EINVAL; } - if (down_interruptible(&ar->sem)) { + if (mutex_lock_interruptible(&ar->mutex)) { ath6kl_err("busy, couldn't get access\n"); return -ERESTARTSYS; } if (test_bit(DESTROY_IN_PROGRESS, &ar->flag)) { ath6kl_err("busy, destroy in progress\n"); - up(&ar->sem); + mutex_unlock(&ar->mutex); return -EBUSY; } @@ -500,14 +500,14 @@ static int ath6kl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, WMI_TIMEOUT); if (signal_pending(current)) { ath6kl_err("cmd queue drain timeout\n"); - up(&ar->sem); + mutex_unlock(&ar->mutex); return -EINTR; } } status = ath6kl_set_assoc_req_ies(vif, sme->ie, sme->ie_len); if (status) { - up(&ar->sem); + mutex_unlock(&ar->mutex); return status; } @@ -522,7 +522,7 @@ static int ath6kl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, vif->req_bssid, vif->ch_hint); - up(&ar->sem); + mutex_unlock(&ar->mutex); if (status) { ath6kl_err("wmi_reconnect_cmd failed\n"); return -EIO; @@ -548,7 +548,7 @@ static int ath6kl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, status = ath6kl_set_auth_type(vif, sme->auth_type); if (status) { - up(&ar->sem); + mutex_unlock(&ar->mutex); return status; } @@ -570,7 +570,7 @@ static int ath6kl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, if (sme->key_idx > WMI_MAX_KEY_INDEX) { ath6kl_err("key index %d out of bounds\n", sme->key_idx); - up(&ar->sem); + mutex_unlock(&ar->mutex); return -ENOENT; } @@ -594,7 +594,7 @@ static int ath6kl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, if (ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ALL_BSS_FILTER, 0) != 0) { ath6kl_err("couldn't set bss filtering\n"); - up(&ar->sem); + mutex_unlock(&ar->mutex); return -EIO; } } @@ -626,7 +626,7 @@ static int ath6kl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, 0); if (status) { ath6kl_err("couldn't set listen intervel\n"); - up(&ar->sem); + mutex_unlock(&ar->mutex); return status; } } @@ -651,7 +651,7 @@ static int ath6kl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, 0, 0, sme->bg_scan_period, 0, 0, 0, 3, 0, 0, 0); - up(&ar->sem); + mutex_unlock(&ar->mutex); if (status == -EINVAL) { memset(vif->ssid, 0, sizeof(vif->ssid)); @@ -832,7 +832,7 @@ static int ath6kl_cfg80211_disconnect(struct wiphy *wiphy, return -EBUSY; } - if (down_interruptible(&ar->sem)) { + if (mutex_lock_interruptible(&ar->mutex)) { ath6kl_err("busy, couldn't get access\n"); return -ERESTARTSYS; } @@ -845,7 +845,7 @@ static int ath6kl_cfg80211_disconnect(struct wiphy *wiphy, if (!test_bit(SKIP_SCAN, &ar->flag)) memset(vif->req_bssid, 0, sizeof(vif->req_bssid)); - up(&ar->sem); + mutex_unlock(&ar->mutex); vif->sme_state = SME_DISCONNECTED; @@ -1775,7 +1775,7 @@ static int ath6kl_get_station(struct wiphy *wiphy, struct net_device *dev, if (memcmp(mac, vif->bssid, ETH_ALEN) != 0) return -ENOENT; - if (down_interruptible(&ar->sem)) + if (mutex_lock_interruptible(&ar->mutex)) return -EBUSY; set_bit(STATS_UPDATE_PEND, &vif->flags); @@ -1783,7 +1783,7 @@ static int ath6kl_get_station(struct wiphy *wiphy, struct net_device *dev, ret = ath6kl_wmi_get_stats_cmd(ar->wmi, vif->fw_vif_idx); if (ret != 0) { - up(&ar->sem); + mutex_unlock(&ar->mutex); return -EIO; } @@ -1792,7 +1792,7 @@ static int ath6kl_get_station(struct wiphy *wiphy, struct net_device *dev, &vif->flags), WMI_TIMEOUT); - up(&ar->sem); + mutex_unlock(&ar->mutex); if (left == 0) return -ETIMEDOUT; diff --git a/drivers/net/wireless/ath/ath6kl/core.c b/drivers/net/wireless/ath/ath6kl/core.c index ebb9f16..0da253a 100644 --- a/drivers/net/wireless/ath/ath6kl/core.c +++ b/drivers/net/wireless/ath/ath6kl/core.c @@ -283,7 +283,7 @@ struct ath6kl *ath6kl_core_create(struct device *dev) spin_lock_init(&ar->list_lock); init_waitqueue_head(&ar->event_wq); - sema_init(&ar->sem, 1); + mutex_init(&ar->mutex); INIT_LIST_HEAD(&ar->amsdu_rx_buffer_queue); INIT_LIST_HEAD(&ar->vif_list); diff --git a/drivers/net/wireless/ath/ath6kl/core.h b/drivers/net/wireless/ath/ath6kl/core.h index ac25f17..42848bd 100644 --- a/drivers/net/wireless/ath/ath6kl/core.h +++ b/drivers/net/wireless/ath/ath6kl/core.h @@ -722,7 +722,7 @@ struct ath6kl { */ spinlock_t lock; - struct semaphore sem; + struct mutex mutex; u8 lrssi_roam_threshold; struct ath6kl_version version; u32 target_type; diff --git a/drivers/net/wireless/ath/ath6kl/debug.c b/drivers/net/wireless/ath/ath6kl/debug.c index e2b7809..f07f4d3 100644 --- a/drivers/net/wireless/ath/ath6kl/debug.c +++ b/drivers/net/wireless/ath/ath6kl/debug.c @@ -102,13 +102,13 @@ int ath6kl_read_tgt_stats(struct ath6kl *ar, struct ath6kl_vif *vif) { long left; - if (down_interruptible(&ar->sem)) + if (mutex_lock_interruptible(&ar->mutex)) return -EBUSY; set_bit(STATS_UPDATE_PEND, &vif->flags); if (ath6kl_wmi_get_stats_cmd(ar->wmi, 0)) { - up(&ar->sem); + mutex_unlock(&ar->mutex); return -EIO; } @@ -116,7 +116,7 @@ int ath6kl_read_tgt_stats(struct ath6kl *ar, struct ath6kl_vif *vif) !test_bit(STATS_UPDATE_PEND, &vif->flags), WMI_TIMEOUT); - up(&ar->sem); + mutex_unlock(&ar->mutex); if (left <= 0) return -ETIMEDOUT; @@ -1167,20 +1167,20 @@ static ssize_t ath6kl_roam_table_read(struct file *file, char __user *user_buf, unsigned int len, buf_len; ssize_t ret_cnt; - if (down_interruptible(&ar->sem)) + if (mutex_lock_interruptible(&ar->mutex)) return -EBUSY; set_bit(ROAM_TBL_PEND, &ar->flag); ret = ath6kl_wmi_get_roam_tbl_cmd(ar->wmi); if (ret) { - up(&ar->sem); + mutex_unlock(&ar->mutex); return ret; } left = wait_event_interruptible_timeout( ar->event_wq, !test_bit(ROAM_TBL_PEND, &ar->flag), WMI_TIMEOUT); - up(&ar->sem); + mutex_unlock(&ar->mutex); if (left <= 0) return -ETIMEDOUT; diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c index 58fb227..377f1fa 100644 --- a/drivers/net/wireless/ath/ath6kl/init.c +++ b/drivers/net/wireless/ath/ath6kl/init.c @@ -1890,8 +1890,8 @@ void ath6kl_stop_txrx(struct ath6kl *ar) set_bit(DESTROY_IN_PROGRESS, &ar->flag); - if (down_interruptible(&ar->sem)) { - ath6kl_err("down_interruptible failed\n"); + if (mutex_lock_interruptible(&ar->mutex)) { + ath6kl_err("mutex_lock_interruptible failed\n"); return; } @@ -1938,6 +1938,6 @@ void ath6kl_stop_txrx(struct ath6kl *ar) */ ath6kl_init_hw_reset(ar); - up(&ar->sem); + mutex_unlock(&ar->mutex); } EXPORT_SYMBOL(ath6kl_stop_txrx);