tree:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git pending
head:   f39910e66f150e60eaceb8a61a59e2d289e0b881
commit: b5e79a6ebd27a7dc2ebee0cf5078d682b7e15559 [77/144] wil6210: add support 
for enhanced DMA RX data flows
config: x86_64-randconfig-s3-05210050 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        git checkout b5e79a6ebd27a7dc2ebee0cf5078d682b7e15559
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/wil6210.h:WIL_GET_BITS
   Cyclomatic Complexity 1 drivers/net/wireless/ath/wil6210/wil6210.h:wil_w
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/wil6210.h:wil_hex_dump_txrx
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_skb_rxstatus
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_length
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_mcs
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_flow_id
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_mcast
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_cid
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_tid
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_desc_rdy_bit
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_eop
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_buff_id
   Cyclomatic Complexity 3 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_data_offset
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_frame_type
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_fc1
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_seq
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_mid
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_error
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_l2_rx_status
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_l3_rx_status
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_l4_rx_status
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_security
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_status_get_key_id
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_ring_next_head
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_desc_set_addr_edma
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_tx_desc_get_addr_edma
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.h:wil_rx_desc_get_addr_edma
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx.h:wil_ring_is_empty
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx.h:wil_ring_next_tail
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx.h:wil_ring_advance_head
   Cyclomatic Complexity 4 
drivers/net/wireless/ath/wil6210/txrx.h:wil_need_txstat
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx.h:wil_ring_used_tx
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx.h:wil_ring_avail_tx
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx.h:wil_is_back_req
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx.h:wil_val_in_range
   Cyclomatic Complexity 3 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_find_free_sring
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_get_next_rx_status_msg
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_sring_advance_swhead
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_get_reorder_params_edma
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_get_netif_rx_params_edma
   Cyclomatic Complexity 4 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_is_rx_idle_edma
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_rx_buf_len_init_edma
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_tx_desc_map_edma
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_get_next_tx_status_msg
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_tx_desc_offload_setup_tso_edma
   Cyclomatic Complexity 3 
drivers/net/wireless/ath/wil6210/txrx_edma.c:sring_order_set
   Cyclomatic Complexity 8 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_rx_edma_check_errors
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_rx_data_free
   Cyclomatic Complexity 2 include/linux/dma-mapping.h:dma_unmap_single_attrs
   Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_map_single_attrs
   Cyclomatic Complexity 2 include/linux/dma-mapping.h:dma_unmap_page_attrs
   Cyclomatic Complexity 3 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_tx_desc_unmap_edma
   Cyclomatic Complexity 4 include/linux/dma-mapping.h:dma_free_attrs
   Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_free_coherent
   Cyclomatic Complexity 3 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_sring_free
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_tx_fini_edma
   Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_map_page_attrs
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_frag_dma_map
   Cyclomatic Complexity 5 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_tx_tso_gen_desc
   Cyclomatic Complexity 10 
drivers/net/wireless/ath/wil6210/trace.h:trace_wil6210_rx_status
   Cyclomatic Complexity 10 
drivers/net/wireless/ath/wil6210/trace.h:trace_wil6210_tx_status
   Cyclomatic Complexity 2 include/linux/list.h:__list_del_entry
   Cyclomatic Complexity 2 include/linux/list.h:__list_add
   Cyclomatic Complexity 1 include/linux/list.h:list_add
   Cyclomatic Complexity 1 include/linux/list.h:list_move
   Cyclomatic Complexity 4 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_move_all_rx_buff_to_free_list
   Cyclomatic Complexity 5 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_check_bar
   Cyclomatic Complexity 20 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_sring_reap_rx_edma
   Cyclomatic Complexity 14 
drivers/net/wireless/ath/wil6210/txrx_edma.c:__wil_tx_ring_tso_edma
   Cyclomatic Complexity 1 include/linux/skbuff.h:netdev_alloc_skb
   Cyclomatic Complexity 1 include/linux/skbuff.h:dev_alloc_skb
   Cyclomatic Complexity 5 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_ring_alloc_skb_edma
   Cyclomatic Complexity 4 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_rx_refill_edma
   Cyclomatic Complexity 1 include/linux/netdevice.h:dev_consume_skb_any
   Cyclomatic Complexity 1 include/linux/netdevice.h:dev_kfree_skb_any
   Cyclomatic Complexity 3 
drivers/net/wireless/ath/wil6210/txrx.h:wil_consume_skb
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_free_rx_buff_arr
   Cyclomatic Complexity 5 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_rx_crypto_check_edma
   Cyclomatic Complexity 6 include/linux/dma-mapping.h:dma_alloc_attrs
   Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_alloc_coherent
   Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_zalloc_coherent
   Cyclomatic Complexity 3 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_sring_alloc
   Cyclomatic Complexity 3 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_init_rx_sring
   Cyclomatic Complexity 5 include/linux/slab.h:kmalloc_array
   Cyclomatic Complexity 1 include/linux/slab.h:kcalloc
   Cyclomatic Complexity 7 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_ring_alloc_desc_ring
   Cyclomatic Complexity 3 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_init_rx_buff_arr
   Cyclomatic Complexity 4 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_tx_init_edma
   Cyclomatic Complexity 1 include/linux/lockdep.h:lock_is_held
   Cyclomatic Complexity 9 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_ring_free_edma
   Cyclomatic Complexity 2 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_rx_fini_edma
   Cyclomatic Complexity 3 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_init_rx_desc_ring
   Cyclomatic Complexity 14 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_rx_init_edma
   Cyclomatic Complexity 7 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_ring_init_bcast_edma
   Cyclomatic Complexity 9 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_ring_init_tx_edma
   Cyclomatic Complexity 8 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_rx_handle_edma
   Cyclomatic Complexity 15 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_tx_sring_handler
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.c:wil_init_txrx_ops_edma
   drivers/net/wireless/ath/wil6210/txrx_edma.c: In function 
'wil_rx_handle_edma':
>> drivers/net/wireless/ath/wil6210/txrx_edma.c:815:7: warning: 'stats' may be 
>> used uninitialized in this function [-Wmaybe-uninitialized]
     stats->rx_non_data_frame++;
     ~~~~~^~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/ath/wil6210/txrx_edma.c:908:24: note: 'stats' was 
declared here
     struct wil_net_stats *stats;
                           ^~~~~
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.c:_GLOBAL__sub_D_65535_0_use_compressed_rx_status
   Cyclomatic Complexity 1 
drivers/net/wireless/ath/wil6210/txrx_edma.c:_GLOBAL__sub_I_65535_1_use_compressed_rx_status

vim +/stats +815 drivers/net/wireless/ath/wil6210/txrx_edma.c

   785  
   786  /* This function is used only for RX SW reorder */
   787  static int wil_check_bar(struct wil6210_priv *wil, void *msg, int cid,
   788                           struct sk_buff *skb, struct wil_net_stats 
*stats)
   789  {
   790          u8 ftype;
   791          u8 fc1;
   792          int mid;
   793          int tid;
   794          u16 seq;
   795          struct wil6210_vif *vif;
   796  
   797          ftype = wil_rx_status_get_frame_type(msg);
   798          if (ftype == IEEE80211_FTYPE_DATA)
   799                  return 0;
   800  
   801          fc1 = wil_rx_status_get_fc1(msg);
   802          mid = wil_rx_status_get_mid(msg);
   803          tid = wil_rx_status_get_tid(msg);
   804          seq = le16_to_cpu(wil_rx_status_get_seq(msg));
   805          vif = wil->vifs[mid];
   806  
   807          if (unlikely(!vif)) {
   808                  wil_dbg_txrx(wil, "RX descriptor with invalid mid %d", 
mid);
   809                  return -EAGAIN;
   810          }
   811  
   812          wil_dbg_txrx(wil,
   813                       "Non-data frame FC[7:0] 0x%02x MID %d CID %d TID 
%d Seq 0x%03x\n",
   814                       fc1, mid, cid, tid, seq);
 > 815          stats->rx_non_data_frame++;
   816          if (wil_is_back_req(fc1)) {
   817                  wil_dbg_txrx(wil,
   818                               "BAR: MID %d CID %d TID %d Seq 0x%03x\n",
   819                               mid, cid, tid, seq);
   820                  wil_rx_bar(wil, vif, cid, tid, seq);
   821          } else {
   822                  u32 sz = use_compressed_rx_status ?
   823                          sizeof(struct wil_rx_status_compressed) :
   824                          sizeof(struct wil_rx_status_extended);
   825  
   826                  /* print again all info. One can enable only this
   827                   * without overhead for printing every Rx frame
   828                   */
   829                  wil_dbg_txrx(wil,
   830                               "Unhandled non-data frame FC[7:0] 0x%02x 
MID %d CID %d TID %d Seq 0x%03x\n",
   831                               fc1, mid, cid, tid, seq);
   832                  wil_hex_dump_txrx("RxS ", DUMP_PREFIX_NONE, 32, 4,
   833                                    (const void *)msg, sz, false);
   834                  wil_hex_dump_txrx("Rx ", DUMP_PREFIX_OFFSET, 16, 1,
   835                                    skb->data, skb_headlen(skb), false);
   836          }
   837  
   838          return -EAGAIN;
   839  }
   840  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to