From: alexander.levin@verizon.com
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"stable@vger.kernel.org" <stable@vger.kernel.org>
Cc: Ryan Hsu <ryanhsu@qca.qualcomm.com>,
Kalle Valo <kvalo@qca.qualcomm.com>,
alexander.levin@verizon.com
Subject: [PATCH AUTOSEL for 4.4 09/28] ath10k: fix incorrect txpower set by P2P_DEVICE interface
Date: Wed, 15 Nov 2017 02:46:00 +0000 [thread overview]
Message-ID: <20171115024551.5988-9-alexander.levin@verizon.com> (raw)
In-Reply-To: <20171115024551.5988-1-alexander.levin@verizon.com>
From: Ryan Hsu <ryanhsu@qca.qualcomm.com>
[ Upstream commit 88407beb1b1462f706a1950a355fd086e1c450b6 ]
Ath10k reports the phy capability that supports P2P_DEVICE interface.
When we use the P2P supported wpa_supplicant to start connection, it'll
create two interfaces, one is wlan0 (vdev_id=0) and one is P2P_DEVICE
p2p-dev-wlan0 which is for p2p control channel (vdev_id=1).
ath10k_pci mac vdev create 0 (add interface) type 2 subtype 0
ath10k_add_interface: vdev_id: 0, txpower: 0, bss_power: 0
...
ath10k_pci mac vdev create 1 (add interface) type 2 subtype 1
ath10k_add_interface: vdev_id: 1, txpower: 0, bss_power: 0
And the txpower in per vif bss_conf will only be set to valid tx power when
the interface is assigned with channel_ctx.
But this P2P_DEVICE interface will never be used for any connection, so
that the uninitialized bss_conf.txpower=0 is assinged to the
arvif->txpower when interface created.
Since the txpower configuration is firmware per physical interface.
So the smallest txpower of all vifs will be the one limit the tx power
of the physical device, that causing the low txpower issue on other
active interfaces.
wlan0: Limiting TX power to 21 (24 - 3) dBm
ath10k_pci mac vdev_id 0 txpower 21
ath10k_mac_txpower_recalc: vdev_id: 1, txpower: 0
ath10k_mac_txpower_recalc: vdev_id: 0, txpower: 21
ath10k_pci mac txpower 0
This issue only happens when we use the wpa_supplicant that supports
P2P or if we use the iw tool to create the control P2P_DEVICE interface.
Signed-off-by: Ryan Hsu <ryanhsu@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
---
drivers/net/wireless/ath/ath10k/mac.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 6decf4a95ce1..cf3baf3185e8 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -4180,7 +4180,8 @@ static int ath10k_mac_txpower_recalc(struct ath10k *ar)
lockdep_assert_held(&ar->conf_mutex);
list_for_each_entry(arvif, &ar->arvifs, list) {
- WARN_ON(arvif->txpower < 0);
+ if (arvif->txpower <= 0)
+ continue;
if (txpower == -1)
txpower = arvif->txpower;
@@ -4188,8 +4189,8 @@ static int ath10k_mac_txpower_recalc(struct ath10k *ar)
txpower = min(txpower, arvif->txpower);
}
- if (WARN_ON(txpower == -1))
- return -EINVAL;
+ if (txpower == -1)
+ return 0;
ret = ath10k_mac_txpower_setup(ar, txpower);
if (ret) {
--
2.11.0
next prev parent reply other threads:[~2017-11-15 3:03 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-15 2:45 [PATCH AUTOSEL for 4.4 01/28] ACPICA: Resources: Not a valid resource if buffer length too long alexander.levin
2017-11-15 2:45 ` [PATCH AUTOSEL for 4.4 02/28] RDS: RDMA: return appropriate error on rdma map failures alexander.levin
2017-11-15 2:45 ` [PATCH AUTOSEL for 4.4 06/28] net: 3com: typhoon: typhoon_init_one: make return values more specific alexander.levin
2017-11-15 2:45 ` [PATCH AUTOSEL for 4.4 05/28] net: Allow IP_MULTICAST_IF to set index to L3 slave alexander.levin
2017-11-15 2:45 ` [PATCH AUTOSEL for 4.4 03/28] PCI: Apply _HPX settings only to relevant devices alexander.levin
2017-11-15 2:45 ` [PATCH AUTOSEL for 4.4 04/28] dmaengine: zx: set DMA_CYCLIC cap_mask bit alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 08/28] drm/armada: Fix compile fail alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 07/28] net: 3com: typhoon: typhoon_init_one: fix incorrect return values alexander.levin
2017-11-15 2:46 ` alexander.levin [this message]
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 10/28] ath10k: ignore configuring the incorrect board_id alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 14/28] drm: Apply range restriction after color adjustment when allocation alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 13/28] ALSA: hda - Apply ALC269_FIXUP_NO_SHUTUP on HDA_FIXUP_ACT_PROBE alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 12/28] ath10k: set CTS protection VDEV param only if VDEV is up alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 11/28] ath10k: fix potential memory leak in ath10k_wmi_tlv_op_pull_fw_stats() alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 19/28] staging: iio: cdc: fix improper return value alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 17/28] drm/i915: Fix the level 0 max_wm hack on VLV/CHV alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 16/28] mac80211: Suppress NEW_PEER_CANDIDATE event if no room alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 15/28] mac80211: Remove invalid flag operations in mesh TSF synchronization alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 18/28] iio: light: fix improper return value alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 20/28] drm/i915/bxt: Correct dual-link MIPI port control alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 21/28] spi: SPI_FSL_DSPI should depend on HAS_DMA alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 23/28] netfilter: nf_tables: fix oob access alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 22/28] netfilter: nft_queue: use raw_smp_processor_id() alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 27/28] s390/kbuild: enable modversions for symbols exported from asm alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 26/28] ASoC: wm_adsp: Don't overrun firmware file buffer when reading region data alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 25/28] btrfs: return the actual error value from from btrfs_uuid_tree_iterate alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 24/28] ASoC: rsnd: don't double free kctrl alexander.levin
2017-11-15 2:46 ` [PATCH AUTOSEL for 4.4 28/28] xen: xenbus driver must not accept invalid transaction ids alexander.levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171115024551.5988-9-alexander.levin@verizon.com \
--to=alexander.levin@verizon.com \
--cc=kvalo@qca.qualcomm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ryanhsu@qca.qualcomm.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®