1. 09 Oct, 2019 17 commits
    • Colin Ian King's avatar
      rtl8xxxu: make arrays static, makes object smaller · 314bf64d
      Colin Ian King authored
      Don't populate const arrays on the stack but instead make them
      static. Makes the object code smaller by 60 bytes.
      
      Before:
         text	   data	    bss	    dec	    hex	filename
        15133	   8768	      0	  23901	   5d5d	realtek/rtl8xxxu/rtl8xxxu_8192e.o
        15209	   6392	      0	  21601	   5461	realtek/rtl8xxxu/rtl8xxxu_8723b.o
       103254	  31202	    576	 135032	  20f78	realtek/rtl8xxxu/rtl8xxxu_core.o
      
      After:
         text	   data	    bss	    dec	    hex	filename
        14861	   9024	      0	  23885	   5d4d	realtek/rtl8xxxu/rtl8xxxu_8192e.o
        14953	   6616	      0	  21569	   5441	realtek/rtl8xxxu/rtl8xxxu_8723b.o
       102986	  31458	    576	 135020	  20f6c	realtek/rtl8xxxu/rtl8xxxu_core.o
      
      (gcc version 9.2.1, amd64)
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Reviewed-by: default avatarChris Chiu <chiu@endlessm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      314bf64d
    • Colin Ian King's avatar
      iwlegacy: make array interval static, makes object smaller · 55047fb7
      Colin Ian King authored
      Don't populate the array interval on the stack but instead make it
      static. Makes the object code smaller by 121 bytes.
      
      Before:
         text	   data	    bss	    dec	    hex	filename
       167797	  29676	    448	 197921	  30521	wireless/intel/iwlegacy/common.o
      
      After:
         text	   data	    bss	    dec	    hex	filename
       167580	  29772	    448	 197800	  304a8	wireless/intel/iwlegacy/common.o
      
      (gcc version 9.2.1, amd64)
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      55047fb7
    • Dan Carpenter's avatar
      rtw88: Fix an error message · be10b09b
      Dan Carpenter authored
      The WARN_ON() macro doesn't take an error message, the argument is a
      condition so this won't display the warning message.
      
      Fixes: 27e117e4 ("rtw88: add deep power save support")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      be10b09b
    • Chris Chiu's avatar
      rtl8xxxu: add bluetooth co-existence support for single antenna · e542e66b
      Chris Chiu authored
      The RTL8723BU suffers the wifi disconnection problem while bluetooth
      device connected. While wifi is doing tx/rx, the bluetooth will scan
      without results. This is due to the wifi and bluetooth share the same
      single antenna for RF communication and they need to have a mechanism
      to collaborate.
      
      BT information is provided via the packet sent from co-processor to
      host (C2H). It contains the status of BT but the rtl8723bu_handle_c2h
      dose not really handle it. And there's no bluetooth coexistence
      mechanism to deal with it.
      
      This commit adds a workqueue to set the tdma configurations and
      coefficient table per the parsed bluetooth link status and given
      wifi connection state. The tdma/coef table comes from the vendor
      driver code of the RTL8192EU and RTL8723BU. However, this commit is
      only for single antenna scenario which RTL8192EU is default dual
      antenna. The rtl8xxxu_parse_rxdesc24 which invokes the handle_c2h
      is only for 8723b and 8192e so the mechanism is expected to work
      on both chips with single antenna. Note RTL8192EU dual antenna is
      not supported.
      Signed-off-by: default avatarChris Chiu <chiu@endlessm.com>
      Signed-off-by: default avatarJes Sorensen <Jes.Sorensen@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      e542e66b
    • Navid Emamdoost's avatar
      mwifiex: pcie: Fix memory leak in mwifiex_pcie_init_evt_ring · d10dcb61
      Navid Emamdoost authored
      In mwifiex_pcie_init_evt_ring, a new skb is allocated which should be
      released if mwifiex_map_pci_memory() fails. The release for skb and
      card->evtbd_ring_vbase is added.
      
      Fixes: 0732484b ("mwifiex: separate ring initialization and ring creation routines")
      Signed-off-by: default avatarNavid Emamdoost <navid.emamdoost@gmail.com>
      Acked-by: default avatarGanapathi Bhat <gbhat@marvell.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      d10dcb61
    • Navid Emamdoost's avatar
      mwifiex: pcie: Fix memory leak in mwifiex_pcie_alloc_cmdrsp_buf · db8fd2cd
      Navid Emamdoost authored
      In mwifiex_pcie_alloc_cmdrsp_buf, a new skb is allocated which should be
      released if mwifiex_map_pci_memory() fails. The release is added.
      
      Fixes: fc331460 ("mwifiex: use pci_alloc/free_consistent APIs for PCIe")
      Signed-off-by: default avatarNavid Emamdoost <navid.emamdoost@gmail.com>
      Acked-by: default avatarGanapathi Bhat <gbhat@marvell.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      db8fd2cd
    • Johan Hovold's avatar
      rsi: drop bogus device-id checks from probe · 39e50f5c
      Johan Hovold authored
      USB core will never call a USB-driver probe function with a NULL
      device-id pointer.
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      39e50f5c
    • Johan Hovold's avatar
      Revert "rsi: fix potential null dereference in rsi_probe()" · c5dcf8f0
      Johan Hovold authored
      This reverts commit f170d44b.
      
      USB core will never call a USB-driver probe function with a NULL
      device-id pointer.
      
      Reverting before removing the existing checks in order to document this
      and prevent the offending commit from being "autoselected" for stable.
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      c5dcf8f0
    • zhengbin's avatar
      rtlwifi: rtl8723: Remove set but not used variable 'own' · 4614239c
      zhengbin authored
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/net/wireless/realtek/rtlwifi/rtl8723com/fw_common.c: In function rtl8723_cmd_send_packet:
      drivers/net/wireless/realtek/rtlwifi/rtl8723com/fw_common.c:226:5: warning: variable own set but not used [-Wunused-but-set-variable]
      
      It is not used since commit f1d2b4d3 ("rtlwifi:
      rtl818x: Move drivers into new realtek directory")
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarzhengbin <zhengbin13@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      4614239c
    • zhengbin's avatar
      rtlwifi: btcoex: Remove set but not used variables 'wifi_busy','bt_info_ext' · aab7541a
      zhengbin authored
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c: In function btc8723b1ant_tdma_dur_adj_for_acl:
      drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c:1428:7: warning: variable wifi_busy set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c: In function btc8723b1ant_tdma_dur_adj_for_acl:
      drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c:1427:22: warning: variable bt_info_ext set but not used [-Wunused-but-set-variable]
      
      'wifi_busy' is not used since commit 158707f9 ("rtlwifi:
      btcoex: Restore 23b 1ant routine for tdma adjustment")
      
      'bt_info_ext' is not used since commit 2622d7d8 ("rtlwifi:
      btcoex: 23b 1ant: TDMA duration for ACL busy")
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarzhengbin <zhengbin13@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      aab7541a
    • zhengbin's avatar
      rtlwifi: btcoex: Remove set but not used variable 'result' · e2507607
      zhengbin authored
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8192e2ant.c: In function btc8192e2ant_tdma_duration_adjust:
      drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8192e2ant.c:1584:6: warning: variable result set but not used [-Wunused-but-set-variable]
      
      It is not used since commit 27a31a60 ("rtlwifi:
      btcoex: remove unused functions")
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarzhengbin <zhengbin13@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      e2507607
    • zhengbin's avatar
      rtlwifi: rtl8188ee: Remove set but not used variable 'h2c_parameter' · 073f8138
      zhengbin authored
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c: In function rtl88e_dm_pwdb_monitor:
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c:763:6: warning: variable h2c_parameter set but not used [-Wunused-but-set-variable]
      
      It is not used since commit f1d2b4d3 ("rtlwifi:
      rtl818x: Move drivers into new realtek directory")
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarzhengbin <zhengbin13@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      073f8138
    • zhengbin's avatar
      rtlwifi: rtl8188ee: Remove set but not used variables... · 925942b5
      zhengbin authored
      rtlwifi: rtl8188ee: Remove set but not used variables 'v3','rtstatus','reg_ecc','reg_ec4','reg_eac','b_pathb_ok'
      
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c: In function phy_config_bb_with_pghdr:
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c:652:22: warning: variable v3 set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c: In function rtl88e_phy_config_rf_with_headerfile:
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c:772:7: warning: variable rtstatus set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c: In function rtl88e_phy_iq_calibrate:
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c:1945:6: warning: variable reg_ecc set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c: In function rtl88e_phy_iq_calibrate:
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c:1944:61: warning: variable reg_ec4 set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c: In function rtl88e_phy_iq_calibrate:
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c:1944:34: warning: variable reg_eac set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c: In function rtl88e_phy_iq_calibrate:
      drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c:1943:19: warning: variable b_pathb_ok set but not used [-Wunused-but-set-variable]
      
      They are not used since commit f1d2b4d3 ("rtlwifi:
      rtl818x: Move drivers into new realtek directory")
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarzhengbin <zhengbin13@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      925942b5
    • zhengbin's avatar
      rtlwifi: rtl8192c: Remove set but not used variables 'reg_ecc','reg_eac' · a003aec3
      zhengbin authored
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c: In function rtl92c_phy_iq_calibrate:
      drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c:1373:6: warning: variable reg_ecc set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c: In function rtl92c_phy_iq_calibrate:
      drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c:1372:34: warning: variable reg_eac set but not used [-Wunused-but-set-variable]
      
      They are not used since commit f1d2b4d3 ("rtlwifi:
      rtl818x: Move drivers into new realtek directory")
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarzhengbin <zhengbin13@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      a003aec3
    • zhengbin's avatar
      rtlwifi: rtl8723ae: Remove set but not used variables 'reg_ecc','reg_ec4','reg_eac','b_pathb_ok' · a3e017fd
      zhengbin authored
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c: In function rtl8723e_phy_iq_calibrate:
      drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c:1346:6: warning: variable reg_ecc set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c: In function rtl8723e_phy_iq_calibrate:
      drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c:1345:61: warning: variable reg_ec4 set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c: In function rtl8723e_phy_iq_calibrate:
      drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c:1345:34: warning: variable reg_eac set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c: In function rtl8723e_phy_iq_calibrate:
      drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c:1344:19: warning: variable b_pathb_ok set but not used [-Wunused-but-set-variable]
      
      They are not used since commit f1d2b4d3 ("rtlwifi:
      rtl818x: Move drivers into new realtek directory")
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarzhengbin <zhengbin13@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      a3e017fd
    • zhengbin's avatar
      rtlwifi: rtl8821ae: Remove set but not used variables 'rtstatus','bd' · 0fc44cd4
      zhengbin authored
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c: In function rtl8812ae_phy_config_rf_with_headerfile:
      drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c:2079:7: warning: variable rtstatus set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c: In function rtl8821ae_phy_config_rf_with_headerfile:
      drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c:2114:7: warning: variable rtstatus set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c: In function _rtl8812ae_phy_get_txpower_limit:
      drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c:2354:6: warning: variable bd set but not used [-Wunused-but-set-variable]
      
      They are not used since commit f1d2b4d3 ("rtlwifi:
      rtl818x: Move drivers into new realtek directory")
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarzhengbin <zhengbin13@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      0fc44cd4
    • Chris Chiu's avatar
      rtl8xxxu: Improve TX performance of RTL8723BU on rtl8xxxu driver · a9bb0b51
      Chris Chiu authored
      We have 3 laptops which connect the wifi by the same RTL8723BU.
      The PCI VID/PID of the wifi chip is 10EC:B720 which is supported.
      They have the same problem with the in-kernel rtl8xxxu driver, the
      iperf (as a client to an ethernet-connected server) gets ~1Mbps.
      Nevertheless, the signal strength is reported as around -40dBm,
      which is quite good. From the wireshark capture, the tx rate for each
      data and qos data packet is only 1Mbps. Compare to the Realtek driver
      at https://github.com/lwfinger/rtl8723bu, the same iperf test gets
      ~12Mbps or better. The signal strength is reported similarly around
      -40dBm. That's why we want to improve.
      
      After reading the source code of the rtl8xxxu driver and Realtek's, the
      major difference is that Realtek's driver has a watchdog which will keep
      monitoring the signal quality and updating the rate mask just like the
      rtl8xxxu_gen2_update_rate_mask() does if signal quality changes.
      And this kind of watchdog also exists in rtlwifi driver of some specific
      chips, ex rtl8192ee, rtl8188ee, rtl8723ae, rtl8821ae...etc. They have
      the same member function named dm_watchdog and will invoke the
      corresponding dm_refresh_rate_adaptive_mask to adjust the tx rate
      mask.
      
      With this commit, the tx rate of each data and qos data packet will
      be 39Mbps (MCS4) with the 0xF00000 as the tx rate mask. The 20th bit
      to 23th bit means MCS4 to MCS7. It means that the firmware still picks
      the lowest rate from the rate mask and explains why the tx rate of
      data and qos data is always lowest 1Mbps because the default rate mask
      passed is always 0xFFFFFFF ranges from the basic CCK rate, OFDM rate,
      and MCS rate. However, with Realtek's driver, the tx rate observed from
      wireshark under the same condition is almost 65Mbps or 72Mbps, which
      indicating that rtl8xxxu could still be further improved.
      Signed-off-by: default avatarChris Chiu <chiu@endlessm.com>
      Reviewed-by: default avatarDaniel Drake <drake@endlessm.com>
      Acked-by: default avatarJes Sorensen <Jes.Sorensen@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      a9bb0b51
  2. 04 Oct, 2019 17 commits
  3. 03 Oct, 2019 1 commit
  4. 02 Oct, 2019 5 commits
    • Denis Efremov's avatar
      wil6210: check len before memcpy() calls · 2c840676
      Denis Efremov authored
      memcpy() in wmi_set_ie() and wmi_update_ft_ies() is called with
      src == NULL and len == 0. This is an undefined behavior. Fix it
      by checking "ie_len > 0" before the memcpy() calls.
      
      As suggested by GCC documentation:
      "The pointers passed to memmove (and similar functions in <string.h>)
      must be non-null even when nbytes==0, so GCC can use that information
      to remove the check after the memmove call." [1]
      
      [1] https://gcc.gnu.org/gcc-4.9/porting_to.html
      
      Cc: Maya Erez <merez@codeaurora.org>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDenis Efremov <efremov@linux.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      2c840676
    • Denis Efremov's avatar
      ar5523: check NULL before memcpy() in ar5523_cmd() · 315cee42
      Denis Efremov authored
      memcpy() call with "idata == NULL && ilen == 0" results in undefined
      behavior in ar5523_cmd(). For example, NULL is passed in callchain
      "ar5523_stat_work() -> ar5523_cmd_write() -> ar5523_cmd()". This patch
      adds ilen check before memcpy() call in ar5523_cmd() to prevent an
      undefined behavior.
      
      Cc: Pontus Fuchs <pontus.fuchs@gmail.com>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: David Laight <David.Laight@ACULAB.COM>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDenis Efremov <efremov@linux.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      315cee42
    • Wen Gong's avatar
      ath10k: add support for hardware rfkill · 1382993f
      Wen Gong authored
      When hardware rfkill is enabled in the firmware it will report the
      capability via using WMI_TLV_SYS_CAP_INFO_RFKILL bit in the WMI_SERVICE_READY
      event to the host. ath10k will check the capability, and if it is enabled then
      ath10k will set the GPIO information to firmware using WMI_PDEV_SET_PARAM. When
      the firmware detects hardware rfkill is enabled by the user, it will report it
      via WMI_RFKILL_STATE_CHANGE_EVENTID. Once ath10k receives the event it will
      send wmi command WMI_PDEV_SET_PARAM to the firmware to enable/disable the radio
      and also notifies cfg80211.
      
      We can't power off the device when rfkill is enabled, as otherwise the
      firmware would not be able to detect GPIO changes and report them to the
      host. So when rfkill is enabled, we need to keep the firmware running.
      
      Tested with QCA6174 PCI with firmware
      WLAN.RM.4.4.1-00109-QCARMSWPZ-1.
      Signed-off-by: default avatarAlan Liu <alanliu@codeaurora.org>
      Signed-off-by: default avatarWen Gong <wgong@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      1382993f
    • Christian Lamparter's avatar
      ath10k: restore QCA9880-AR1A (v1) detection · f8914a14
      Christian Lamparter authored
      This patch restores the old behavior that read
      the chip_id on the QCA988x before resetting the
      chip. This needs to be done in this order since
      the unsupported QCA988x AR1A chips fall off the
      bus when resetted. Otherwise the next MMIO Op
      after the reset causes a BUS ERROR and panic.
      
      Cc: stable@vger.kernel.org
      Fixes: 1a7fecb7 ("ath10k: reset chip before reading chip_id in probe")
      Signed-off-by: default avatarChristian Lamparter <chunkeey@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      f8914a14
    • Ben Greear's avatar
      ath10k: fix offchannel tx failure when no ath10k_mac_tx_frm_has_freq · cc6df017
      Ben Greear authored
      Offchannel management frames were failing:
      
      [18099.253732] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3780
      [18102.293686] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3780
      [18105.333653] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3780
      [18108.373712] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3780
      [18111.413687] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e36c0
      [18114.453726] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3f00
      [18117.493773] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e36c0
      [18120.533631] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3f00
      
      This bug appears to have been added between 4.0 (which works for us),
      and 4.4, which does not work.
      
      I think this is because the tx-offchannel logic gets in a loop when
      ath10k_mac_tx_frm_has_freq(ar) is false, so pkt is never actually
      sent to the firmware for transmit.
      
      This patch fixes the problem on 4.9 for me, and now HS20 clients
      can work again with my firmware.
      
      Antonio: tested with 10.4-3.5.3-00057 on QCA4019 and QCA9888
      Signed-off-by: default avatarBen Greear <greearb@candelatech.com>
      Tested-by: default avatarAntonio Quartulli <antonio.quartulli@kaiwoo.ai>
      [kvalo@codeaurora.org: improve commit log, remove unneeded parenthesis]
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      cc6df017