Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp1136014pxj; Tue, 18 May 2021 22:38:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxflZ1irO9dv5J0oA33KRU7ViqOk8kLrmvMG7IIHfTzDgc3zjebJZkW36OeRtsr7HaaPNMT X-Received: by 2002:a17:906:4b19:: with SMTP id y25mr10855392eju.49.1621402726772; Tue, 18 May 2021 22:38:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621402726; cv=none; d=google.com; s=arc-20160816; b=n7HjlqA6vGhrnINJkvihpiermQVT4Vto3rkWYJseB8H0LqQq7Hd35Esu0AzSrZ+tj5 N3JvuPPVC3JXqWsYLr0Q4uIGqds2RJP0Q/vxUT0woZpK+EVE6aLlwL57OM0H5/yMhOoA wrFpZnxuq6wsXawyxyHqV/roU2maINfro65MZXImziGaKUvfSouPQuD7gyVeOgiovQBt STEh4hm/cLz0o3CBKw6oIm6fIq5PTsvXrjswuZyw95LFVMu7lsuh59QEVtmkYjgSPLx2 0qnYuf4ejCcQEQDF/6pX8EBNn7eni/a16CGdNt9DdARLu8oR+Wp6OajxW5mDneJ3emAN OTXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=Qf+3OwoQJHC/7JITKKEjVgVKuYQiJybb4/40CIdLQ5c=; b=xiAMHhk6scXKU88cU3DGmadFv7gRrYBkATkq2T0AePPCXGj1NG3IuYQ6XclwQQMngq jfHzwjL2WtwQB7RYUOe2H0LgmxHRmN8Sdkds3jB/2W4Ay78jomM9TctSFqzlcUp4iXLn 0eM+r22kP5jnDX4ViMQTU46yHgZFwCCUBfNsuuP41KizP95Wnx9NUBqWX3Q42r8lAUzF RC1iPZwYCWOp3VmfHDr51ZGpSA8mYwdpkaU3u/uAOUynKXgHzP53EvmwHr5SN1DidxO2 dnrWSSohWlwwfOBNIjf3C6kX3ONIo2N3/dmMHVo/2S2W2ECIL1xAR3GeJgBhGvEZ8mf7 zw5A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j20si19636816eje.346.2021.05.18.22.38.22; Tue, 18 May 2021 22:38:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237550AbhEQVJ1 (ORCPT + 99 others); Mon, 17 May 2021 17:09:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46156 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237492AbhEQVJU (ORCPT ); Mon, 17 May 2021 17:09:20 -0400 Received: from sipsolutions.net (s3.sipsolutions.net [IPv6:2a01:4f8:191:4433::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5719EC061756 for ; Mon, 17 May 2021 14:08:03 -0700 (PDT) Received: by sipsolutions.net with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.94.2) (envelope-from ) id 1likT1-00AVFx-Hp; Mon, 17 May 2021 23:07:59 +0200 From: Johannes Berg To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH 1/4] mac80211: unify queueing SKB to iface Date: Mon, 17 May 2021 23:07:54 +0200 Message-Id: <20210517230754.113b65febd5a.Ie0e1d58a2885e75f242cb6e06f3b9660117fef93@changeid> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Johannes Berg We have a bunch of places that open-code the same to queue an SKB to an interface, unify that. Signed-off-by: Johannes Berg --- net/mac80211/rx.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 62047e93e217..06ea259bb385 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -214,6 +214,16 @@ ieee80211_rx_radiotap_hdrlen(struct ieee80211_local *local, return len; } +static void ieee80211_queue_skb_to_iface(struct ieee80211_sub_if_data *sdata, + struct sta_info *sta, + struct sk_buff *skb) +{ + skb_queue_tail(&sdata->skb_queue, skb); + ieee80211_queue_work(&sdata->local->hw, &sdata->work); + if (sta) + sta->rx_stats.packets++; +} + static void ieee80211_handle_mu_mimo_mon(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb, int rtap_space) @@ -254,8 +264,7 @@ static void ieee80211_handle_mu_mimo_mon(struct ieee80211_sub_if_data *sdata, if (!skb) return; - skb_queue_tail(&sdata->skb_queue, skb); - ieee80211_queue_work(&sdata->local->hw, &sdata->work); + ieee80211_queue_skb_to_iface(sdata, NULL, skb); } /* @@ -1339,7 +1348,6 @@ static void ieee80211_rx_reorder_ampdu(struct ieee80211_rx_data *rx, struct sk_buff_head *frames) { struct sk_buff *skb = rx->skb; - struct ieee80211_local *local = rx->local; struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; struct sta_info *sta = rx->sta; struct tid_ampdu_rx *tid_agg_rx; @@ -1391,8 +1399,7 @@ static void ieee80211_rx_reorder_ampdu(struct ieee80211_rx_data *rx, /* if this mpdu is fragmented - terminate rx aggregation session */ sc = le16_to_cpu(hdr->seq_ctrl); if (sc & IEEE80211_SCTL_FRAG) { - skb_queue_tail(&rx->sdata->skb_queue, skb); - ieee80211_queue_work(&local->hw, &rx->sdata->work); + ieee80211_queue_skb_to_iface(rx->sdata, NULL, skb); return; } @@ -3412,10 +3419,7 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx) return RX_QUEUED; queue: - skb_queue_tail(&sdata->skb_queue, rx->skb); - ieee80211_queue_work(&local->hw, &sdata->work); - if (rx->sta) - rx->sta->rx_stats.packets++; + ieee80211_queue_skb_to_iface(sdata, rx->sta, rx->skb); return RX_QUEUED; } @@ -3563,10 +3567,7 @@ ieee80211_rx_h_ext(struct ieee80211_rx_data *rx) return RX_DROP_MONITOR; /* for now only beacons are ext, so queue them */ - skb_queue_tail(&sdata->skb_queue, rx->skb); - ieee80211_queue_work(&rx->local->hw, &sdata->work); - if (rx->sta) - rx->sta->rx_stats.packets++; + ieee80211_queue_skb_to_iface(sdata, rx->sta, rx->skb); return RX_QUEUED; } @@ -3623,11 +3624,7 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx) return RX_DROP_MONITOR; } - /* queue up frame and kick off work to process it */ - skb_queue_tail(&sdata->skb_queue, rx->skb); - ieee80211_queue_work(&rx->local->hw, &sdata->work); - if (rx->sta) - rx->sta->rx_stats.packets++; + ieee80211_queue_skb_to_iface(sdata, rx->sta, rx->skb); return RX_QUEUED; } -- 2.31.1