[PATCH 3/4] ath10k: Add new api to support TID specific configuration

kernel test robot lkp at intel.com
Mon Jun 29 04:39:16 EDT 2020


Hi Tamizh,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on ath6kl/ath-next]
[also build test WARNING on wireless-drivers-next/master v5.8-rc3 next-20200626]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Tamizh-Chelvam/ath10k-Add-support-for-TID-specific-configuration/20200629-010528
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git ath-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All warnings (new ones prefixed by >>):

   In file included from arch/m68k/include/asm/io_mm.h:25,
                    from arch/m68k/include/asm/io.h:8,
                    from include/linux/scatterlist.h:9,
                    from include/linux/dma-mapping.h:11,
                    from include/linux/skbuff.h:31,
                    from include/linux/if_ether.h:19,
                    from include/net/mac80211.h:18,
                    from drivers/net/wireless/ath/ath10k/mac.h:10,
                    from drivers/net/wireless/ath/ath10k/mac.c:8:
   arch/m68k/include/asm/raw_io.h: In function 'raw_rom_outsb':
   arch/m68k/include/asm/raw_io.h:83:7: warning: variable '__w' set but not used [-Wunused-but-set-variable]
      83 |  ({u8 __w, __v = (b);  u32 _addr = ((u32) (addr)); \
         |       ^~~
   arch/m68k/include/asm/raw_io.h:430:3: note: in expansion of macro 'rom_out_8'
     430 |   rom_out_8(port, *buf++);
         |   ^~~~~~~~~
   arch/m68k/include/asm/raw_io.h: In function 'raw_rom_outsw':
   arch/m68k/include/asm/raw_io.h:86:8: warning: variable '__w' set but not used [-Wunused-but-set-variable]
      86 |  ({u16 __w, __v = (w); u32 _addr = ((u32) (addr)); \
         |        ^~~
   arch/m68k/include/asm/raw_io.h:448:3: note: in expansion of macro 'rom_out_be16'
     448 |   rom_out_be16(port, *buf++);
         |   ^~~~~~~~~~~~
   arch/m68k/include/asm/raw_io.h: In function 'raw_rom_outsw_swapw':
   arch/m68k/include/asm/raw_io.h:90:8: warning: variable '__w' set but not used [-Wunused-but-set-variable]
      90 |  ({u16 __w, __v = (w); u32 _addr = ((u32) (addr)); \
         |        ^~~
   arch/m68k/include/asm/raw_io.h:466:3: note: in expansion of macro 'rom_out_le16'
     466 |   rom_out_le16(port, *buf++);
         |   ^~~~~~~~~~~~
   In file included from include/asm-generic/bug.h:5,
                    from arch/m68k/include/asm/bug.h:32,
                    from include/linux/bug.h:5,
                    from include/net/mac80211.h:16,
                    from drivers/net/wireless/ath/ath10k/mac.h:10,
                    from drivers/net/wireless/ath/ath10k/mac.c:8:
   include/linux/scatterlist.h: In function 'sg_set_buf':
   arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
     169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
         |                                                 ^~
   include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
      78 | # define unlikely(x) __builtin_expect(!!(x), 0)
         |                                          ^
   include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
     143 |  BUG_ON(!virt_addr_valid(buf));
         |  ^~~~~~
   include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
     143 |  BUG_ON(!virt_addr_valid(buf));
         |          ^~~~~~~~~~~~~~~
   In file included from arch/m68k/include/asm/bug.h:32,
                    from include/linux/bug.h:5,
                    from include/net/mac80211.h:16,
                    from drivers/net/wireless/ath/ath10k/mac.h:10,
                    from drivers/net/wireless/ath/ath10k/mac.c:8:
   include/linux/dma-mapping.h: In function 'dma_map_resource':
   arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
     169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
         |                                                 ^~
   include/asm-generic/bug.h:144:27: note: in definition of macro 'WARN_ON_ONCE'
     144 |  int __ret_warn_once = !!(condition);   \
         |                           ^~~~~~~~~
   arch/m68k/include/asm/page_mm.h:170:25: note: in expansion of macro 'virt_addr_valid'
     170 | #define pfn_valid(pfn)  virt_addr_valid(pfn_to_virt(pfn))
         |                         ^~~~~~~~~~~~~~~
   include/linux/dma-mapping.h:352:19: note: in expansion of macro 'pfn_valid'
     352 |  if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
         |                   ^~~~~~~~~
   drivers/net/wireless/ath/ath10k/mac.c: At top level:
>> drivers/net/wireless/ath/ath10k/mac.c:6864:5: warning: no previous prototype for 'ath10k_mac_set_tid_config' [-Wmissing-prototypes]
    6864 | int ath10k_mac_set_tid_config(struct ath10k *ar, struct ieee80211_sta *sta,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/ath/ath10k/mac.c: In function 'ath10k_sta_tid_cfg_wk':
>> drivers/net/wireless/ath/ath10k/mac.c:7077:24: warning: variable 'vif' set but not used [-Wunused-but-set-variable]
    7077 |  struct ieee80211_vif *vif;
         |                        ^~~

vim +/ath10k_mac_set_tid_config +6864 drivers/net/wireless/ath/ath10k/mac.c

  6863	
> 6864	int ath10k_mac_set_tid_config(struct ath10k *ar, struct ieee80211_sta *sta,
  6865				      struct ieee80211_vif *vif, u32 changed,
  6866				      struct wmi_per_peer_per_tid_cfg_arg *arg)
  6867	{
  6868		struct ath10k_vif *arvif = (void *)vif->drv_priv;
  6869		struct ath10k_sta *arsta;
  6870		int ret;
  6871	
  6872		if (sta) {
  6873			if (!sta->wme)
  6874				return -ENOTSUPP;
  6875	
  6876			arsta = (struct ath10k_sta *)sta->drv_priv;
  6877	
  6878			if (changed & BIT(NL80211_TID_CONFIG_ATTR_NOACK)) {
  6879				if ((arsta->retry_long[arg->tid] > 0 ||
  6880				     arsta->rate_code[arg->tid] > 0 ||
  6881				     arsta->ampdu[arg->tid] ==
  6882						WMI_TID_CONFIG_AGGR_CONTROL_ENABLE) &&
  6883				     arg->ack_policy == WMI_PEER_TID_CONFIG_NOACK) {
  6884					changed &= ~BIT(NL80211_TID_CONFIG_ATTR_NOACK);
  6885					arg->ack_policy = 0;
  6886					arg->aggr_control = 0;
  6887					arg->rate_ctrl = 0;
  6888					arg->rcode_flags = 0;
  6889				}
  6890			}
  6891	
  6892			if (changed & BIT(NL80211_TID_CONFIG_ATTR_AMPDU_CTRL)) {
  6893				if (arsta->noack[arg->tid] == WMI_PEER_TID_CONFIG_NOACK ||
  6894				    arvif->noack[arg->tid] == WMI_PEER_TID_CONFIG_NOACK) {
  6895					arg->aggr_control = 0;
  6896					changed &= ~BIT(NL80211_TID_CONFIG_ATTR_RETRY_LONG);
  6897				}
  6898			}
  6899	
  6900			if (changed & (BIT(NL80211_TID_CONFIG_ATTR_TX_RATE) |
  6901			    BIT(NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE))) {
  6902				if (arsta->noack[arg->tid] == WMI_PEER_TID_CONFIG_NOACK ||
  6903				    arvif->noack[arg->tid] == WMI_PEER_TID_CONFIG_NOACK) {
  6904					arg->rate_ctrl = 0;
  6905					arg->rcode_flags = 0;
  6906				}
  6907			}
  6908	
  6909			ether_addr_copy(arg->peer_macaddr.addr, sta->addr);
  6910			ret = ath10k_wmi_set_per_peer_per_tid_cfg(ar, arg);
  6911			if (ret)
  6912				return ret;
  6913	
  6914			/* Store the configured parameters in success case */
  6915			if (changed & BIT(NL80211_TID_CONFIG_ATTR_NOACK)) {
  6916				arsta->noack[arg->tid] = arg->ack_policy;
  6917				arg->ack_policy = 0;
  6918				arg->aggr_control = 0;
  6919				arg->rate_ctrl = 0;
  6920				arg->rcode_flags = 0;
  6921			}
  6922	
  6923			if (changed & BIT(NL80211_TID_CONFIG_ATTR_RETRY_LONG)) {
  6924				arsta->retry_long[arg->tid] = arg->retry_count;
  6925				arg->retry_count = 0;
  6926			}
  6927	
  6928			if (changed & BIT(NL80211_TID_CONFIG_ATTR_AMPDU_CTRL)) {
  6929				arsta->ampdu[arg->tid] = arg->aggr_control;
  6930				arg->aggr_control = 0;
  6931			}
  6932	
  6933			if (changed & (BIT(NL80211_TID_CONFIG_ATTR_TX_RATE) |
  6934			    BIT(NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE))) {
  6935				arsta->rate_ctrl[arg->tid] = arg->rate_ctrl;
  6936				arg->rate_ctrl = 0;
  6937				arg->rcode_flags = 0;
  6938			}
  6939	
  6940			if (changed & BIT(NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL)) {
  6941				arsta->rtscts[arg->tid] = arg->rtscts_ctrl;
  6942				arg->ext_tid_cfg_bitmap = 0;
  6943			}
  6944		} else {
  6945			if (changed & BIT(NL80211_TID_CONFIG_ATTR_NOACK)) {
  6946				if ((arvif->retry_long[arg->tid] ||
  6947				     arvif->rate_code[arg->tid] ||
  6948				     arvif->ampdu[arg->tid] ==
  6949						WMI_TID_CONFIG_AGGR_CONTROL_ENABLE) &&
  6950				     arg->ack_policy == WMI_PEER_TID_CONFIG_NOACK) {
  6951					changed &= ~BIT(NL80211_TID_CONFIG_ATTR_NOACK);
  6952				} else {
  6953					arvif->noack[arg->tid] = arg->ack_policy;
  6954					arvif->ampdu[arg->tid] = arg->aggr_control;
  6955					arvif->rate_ctrl[arg->tid] = arg->rate_ctrl;
  6956				}
  6957			}
  6958	
  6959			if (changed & BIT(NL80211_TID_CONFIG_ATTR_RETRY_LONG)) {
  6960				if (arvif->noack[arg->tid] == WMI_PEER_TID_CONFIG_NOACK)
  6961					changed &= ~BIT(NL80211_TID_CONFIG_ATTR_RETRY_LONG);
  6962				else
  6963					arvif->retry_long[arg->tid] = arg->retry_count;
  6964			}
  6965	
  6966			if (changed & BIT(NL80211_TID_CONFIG_ATTR_AMPDU_CTRL)) {
  6967				if (arvif->noack[arg->tid] == WMI_PEER_TID_CONFIG_NOACK)
  6968					changed &= ~BIT(NL80211_TID_CONFIG_ATTR_AMPDU_CTRL);
  6969				else
  6970					arvif->ampdu[arg->tid] = arg->aggr_control;
  6971			}
  6972	
  6973			if (changed & (BIT(NL80211_TID_CONFIG_ATTR_TX_RATE) |
  6974			    BIT(NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE))) {
  6975				if (arvif->noack[arg->tid] == WMI_PEER_TID_CONFIG_NOACK) {
  6976					changed &= ~(BIT(NL80211_TID_CONFIG_ATTR_TX_RATE) |
  6977						     BIT(NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE));
  6978				} else {
  6979					arvif->rate_ctrl[arg->tid] = arg->rate_ctrl;
  6980					arvif->rate_code[arg->tid] = arg->rcode_flags;
  6981				}
  6982			}
  6983	
  6984			if (changed & BIT(NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL)) {
  6985				arvif->rtscts[arg->tid] = arg->rtscts_ctrl;
  6986				arg->ext_tid_cfg_bitmap = 0;
  6987			}
  6988	
  6989			if (changed)
  6990				arvif->tid_conf_changed[arg->tid] |= changed;
  6991		}
  6992	
  6993		return 0;
  6994	}
  6995	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 57210 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/ath10k/attachments/20200629/ad83a9fc/attachment-0001.gz>


More information about the ath10k mailing list