From patchwork Fri Sep 13 12:16:58 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kazior X-Patchwork-Id: 2883731 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 7CFD39F289 for ; Fri, 13 Sep 2013 12:17:31 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5F62C20383 for ; Fri, 13 Sep 2013 12:17:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 29A5A2009C for ; Fri, 13 Sep 2013 12:17:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755517Ab3IMMRO (ORCPT ); Fri, 13 Sep 2013 08:17:14 -0400 Received: from ebb06.tieto.com ([131.207.168.38]:42544 "EHLO ebb06.tieto.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755128Ab3IMMRM (ORCPT ); Fri, 13 Sep 2013 08:17:12 -0400 X-AuditID: 83cfa826-b7f408e000003a47-11-52330242b5da Received: from FIHGA-EXHUB01.eu.tieto.com ( [131.207.136.34]) by ebb06.tieto.com (SMTP Mailer) with SMTP id 6D.C9.14919.24203325; Fri, 13 Sep 2013 15:17:06 +0300 (EEST) Received: from uw001058.eu.tieto.com (10.28.19.57) by inbound.tieto.com (131.207.136.49) with Microsoft SMTP Server id 8.3.298.1; Fri, 13 Sep 2013 15:17:05 +0300 From: Michal Kazior To: CC: , Michal Kazior Subject: [PATCHv2 7/7] ath10k: remove wmi event worker thread Date: Fri, 13 Sep 2013 14:16:58 +0200 Message-ID: <1379074618-30534-8-git-send-email-michal.kazior@tieto.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1379074618-30534-1-git-send-email-michal.kazior@tieto.com> References: <1378821003-22925-1-git-send-email-michal.kazior@tieto.com> <1379074618-30534-1-git-send-email-michal.kazior@tieto.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrJIsWRmVeSWpSXmKPExsXSfL5DSdeJyTjI4O1KJYtHl44xW7xZcYfd 4tvWB2wOzB6fZ95l89i8pN7j8ya5AOYoLpuU1JzMstQifbsEroz1918xFrRIVNyYqNrAuESk i5GTQ0LARKLr6zlmCFtM4sK99WxdjFwcQgKrGCWuLmuDcpYySuw+vI4FpIpNQFfiVeNZVhBb REBB4tekj2wgNrOAr8SzJ8uYQGxhAVuJlW/fsoPYLAKqEpefLmUEsXkF3CWmnj8CVM8BtE1B Ys4kG5Awp4CHxLuLE9ghdrUyShya/wyqXlDi5MwnLBDzJSQOvngBdqmQgIrEwfX7mScwCsxC UjYLSdkCRqZVjPypSUkGZnolmakl+XrJ+bmbGMEhuEJtB+OzB1KHGAU4GJV4eDtjjIKEWBPL iitzDzFKcjApifKm/gYK8SXlp1RmJBZnxBeV5qQWH2KU4GBWEuGddRcox5uSWFmVWpQPk5Lm YFES5xWcYBgkJJCeWJKanZpakFoEk5Xh4FCS4G1nNA4SEixKTU+tSMvMKUFIM3FwggznARq+ AqSGt7ggMbc4Mx0if4pRUUqcdyFIQgAkkVGaB9cLSxGvGMWBXhHmDQKp4gGmF7juV0CDmYAG b94NcnVxSSJCSqqBkb3k7oyWwmTledOEPD/tm6qzYL+kUKy8/PWSFclJh3tOBqosF2803Hhb b6PljP2qX22YHT9GMnwI9Ulh4xf9LjVralS3wfUgmTTJZoOETdG9LO4nVNmsOIyPRexSPn5J 65rd1bKuFXdKn/38/bV348wj+vMYWx7+r4x4nbrPrl0kT+HOilRfJZbijERDLeai4kQAOkzn guwCAAA= Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP It's not really necessary to have this processed in a worker. There are no sleepable calls (and actually shouldn't be). Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/core.h | 3 --- drivers/net/wireless/ath/ath10k/wmi.c | 44 +------------------------------- 2 files changed, 1 insertion(+), 46 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h index c2b6a76..fcf94ee 100644 --- a/drivers/net/wireless/ath/ath10k/core.h +++ b/drivers/net/wireless/ath/ath10k/core.h @@ -113,9 +113,6 @@ struct ath10k_wmi { struct completion service_ready; struct completion unified_ready; wait_queue_head_t tx_credits_wq; - - struct sk_buff_head wmi_event_list; - struct work_struct wmi_event_work; }; struct ath10k_peer_stat { diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c index b29d2b9..6803ead 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.c +++ b/drivers/net/wireless/ath/ath10k/wmi.c @@ -1055,7 +1055,7 @@ static int ath10k_wmi_ready_event_rx(struct ath10k *ar, struct sk_buff *skb) return 0; } -static void ath10k_wmi_event_process(struct ath10k *ar, struct sk_buff *skb) +static void ath10k_wmi_process_rx(struct ath10k *ar, struct sk_buff *skb) { struct wmi_cmd_hdr *cmd_hdr; enum wmi_event_id id; @@ -1174,43 +1174,6 @@ static void ath10k_wmi_event_process(struct ath10k *ar, struct sk_buff *skb) dev_kfree_skb(skb); } -static void ath10k_wmi_event_work(struct work_struct *work) -{ - struct ath10k *ar = container_of(work, struct ath10k, - wmi.wmi_event_work); - struct sk_buff *skb; - - for (;;) { - skb = skb_dequeue(&ar->wmi.wmi_event_list); - if (!skb) - break; - - ath10k_wmi_event_process(ar, skb); - } -} - -static void ath10k_wmi_process_rx(struct ath10k *ar, struct sk_buff *skb) -{ - struct wmi_cmd_hdr *cmd_hdr = (struct wmi_cmd_hdr *)skb->data; - enum wmi_event_id event_id; - - event_id = MS(__le32_to_cpu(cmd_hdr->cmd_id), WMI_CMD_HDR_CMD_ID); - - /* some events require to be handled ASAP - * thus can't be defered to a worker thread */ - switch (event_id) { - case WMI_MGMT_RX_EVENTID: - case WMI_HOST_SWBA_EVENTID: - ath10k_wmi_event_process(ar, skb); - return; - default: - break; - } - - skb_queue_tail(&ar->wmi.wmi_event_list, skb); - queue_work(ar->workqueue, &ar->wmi.wmi_event_work); -} - /* WMI Initialization functions */ int ath10k_wmi_attach(struct ath10k *ar) { @@ -1218,16 +1181,11 @@ int ath10k_wmi_attach(struct ath10k *ar) init_completion(&ar->wmi.unified_ready); init_waitqueue_head(&ar->wmi.tx_credits_wq); - skb_queue_head_init(&ar->wmi.wmi_event_list); - INIT_WORK(&ar->wmi.wmi_event_work, ath10k_wmi_event_work); - return 0; } void ath10k_wmi_detach(struct ath10k *ar) { - cancel_work_sync(&ar->wmi.wmi_event_work); - skb_queue_purge(&ar->wmi.wmi_event_list); } int ath10k_wmi_connect_htc_service(struct ath10k *ar)