| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright 2012-2013, Marco Porsch <marco.porsch@s2005.tu-chemnitz.de> |
|---|
| 3 | 4 | * Copyright 2012-2013, cozybit Inc. |
|---|
| 4 | | - * |
|---|
| 5 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 6 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 7 | | - * published by the Free Software Foundation. |
|---|
| 5 | + * Copyright (C) 2021 Intel Corporation |
|---|
| 8 | 6 | */ |
|---|
| 9 | 7 | |
|---|
| 10 | 8 | #include "mesh.h" |
|---|
| .. | .. |
|---|
| 15 | 13 | |
|---|
| 16 | 14 | /** |
|---|
| 17 | 15 | * mps_qos_null_get - create pre-addressed QoS Null frame for mesh powersave |
|---|
| 16 | + * @sta: the station to get the frame for |
|---|
| 18 | 17 | */ |
|---|
| 19 | 18 | static struct sk_buff *mps_qos_null_get(struct sta_info *sta) |
|---|
| 20 | 19 | { |
|---|
| .. | .. |
|---|
| 47 | 46 | |
|---|
| 48 | 47 | /** |
|---|
| 49 | 48 | * mps_qos_null_tx - send a QoS Null to indicate link-specific power mode |
|---|
| 49 | + * @sta: the station to send to |
|---|
| 50 | 50 | */ |
|---|
| 51 | 51 | static void mps_qos_null_tx(struct sta_info *sta) |
|---|
| 52 | 52 | { |
|---|
| .. | .. |
|---|
| 403 | 403 | |
|---|
| 404 | 404 | /** |
|---|
| 405 | 405 | * mpsp_qos_null_append - append QoS Null frame to MPSP skb queue if needed |
|---|
| 406 | + * @sta: the station to handle |
|---|
| 407 | + * @frames: the frame list to append to |
|---|
| 406 | 408 | * |
|---|
| 407 | 409 | * To properly end a mesh MPSP the last transmitted frame has to set the EOSP |
|---|
| 408 | 410 | * flag in the QoS Control field. In case the current tailing frame is not a |
|---|
| .. | .. |
|---|
| 435 | 437 | |
|---|
| 436 | 438 | info = IEEE80211_SKB_CB(new_skb); |
|---|
| 437 | 439 | info->control.vif = &sdata->vif; |
|---|
| 438 | | - info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING; |
|---|
| 440 | + info->control.flags |= IEEE80211_TX_INTCFL_NEED_TXPROCESSING; |
|---|
| 439 | 441 | |
|---|
| 440 | 442 | __skb_queue_tail(frames, new_skb); |
|---|
| 441 | 443 | } |
|---|
| .. | .. |
|---|
| 587 | 589 | |
|---|
| 588 | 590 | /* only transmit to PS STA with announced, non-zero awake window */ |
|---|
| 589 | 591 | if (test_sta_flag(sta, WLAN_STA_PS_STA) && |
|---|
| 590 | | - (!elems->awake_window || !le16_to_cpu(*elems->awake_window))) |
|---|
| 592 | + (!elems->awake_window || !get_unaligned_le16(elems->awake_window))) |
|---|
| 591 | 593 | return; |
|---|
| 592 | 594 | |
|---|
| 593 | 595 | if (!test_sta_flag(sta, WLAN_STA_MPSP_OWNER)) |
|---|