tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git 
master
head:   49241828e8ed0b0a3dc73466d5bc562ae90acfd6
commit: 96bd4b9e4a44c6c1da93fd3e48bd8eb1b332584a [6/11] mac80211: Adjust TSQ 
pacing shift
config: x86_64-randconfig-x011-201807 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        git checkout 96bd4b9e4a44c6c1da93fd3e48bd8eb1b332584a
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   net/mac80211/tx.c: In function '__ieee80211_subif_start_xmit':
>> net/mac80211/tx.c:3581:3: error: implicit declaration of function 
>> 'sk_pacing_shift_update'; did you mean 'sk_incoming_cpu_update'? 
>> [-Werror=implicit-function-declaration]
      sk_pacing_shift_update(skb->sk, 8);
      ^~~~~~~~~~~~~~~~~~~~~~
      sk_incoming_cpu_update
   Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size
   Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size
   Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:set_bit
   Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:clear_bit
   Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:test_and_clear_bit
   Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit
   Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:variable_test_bit
   Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls64
   Cyclomatic Complexity 1 
include/uapi/linux/byteorder/little_endian.h:__le16_to_cpup
   Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u64
   Cyclomatic Complexity 1 include/linux/kernel.h:reciprocal_scale
   Cyclomatic Complexity 1 include/linux/list.h:INIT_LIST_HEAD
   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_add_tail
   Cyclomatic Complexity 1 include/linux/list.h:__list_del
   Cyclomatic Complexity 2 include/linux/list.h:__list_del_entry
   Cyclomatic Complexity 1 include/linux/list.h:list_del_init
   Cyclomatic Complexity 1 include/linux/list.h:list_move
   Cyclomatic Complexity 1 include/linux/list.h:list_move_tail
   Cyclomatic Complexity 1 include/linux/list.h:list_empty
   Cyclomatic Complexity 1 include/asm-generic/getorder.h:__get_order
   Cyclomatic Complexity 3 include/linux/bitmap.h:bitmap_empty
   Cyclomatic Complexity 1 include/linux/err.h:ERR_PTR
   Cyclomatic Complexity 1 include/linux/err.h:IS_ERR
   Cyclomatic Complexity 3 include/linux/err.h:IS_ERR_OR_NULL
   Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_read
   Cyclomatic Complexity 1 
arch/x86/include/asm/atomic64_64.h:atomic64_add_return
   Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_add
   Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_sub
   Cyclomatic Complexity 1 include/linux/bottom_half.h:__local_bh_disable_ip
   Cyclomatic Complexity 1 include/linux/bottom_half.h:local_bh_disable
   Cyclomatic Complexity 1 include/linux/bottom_half.h:local_bh_enable
   Cyclomatic Complexity 1 include/linux/lockdep.h:lock_is_held
   Cyclomatic Complexity 1 include/linux/spinlock.h:spinlock_check
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock_bh
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_bh
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_irqrestore
   Cyclomatic Complexity 1 include/linux/rcupdate.h:__rcu_read_lock
   Cyclomatic Complexity 1 include/linux/rcupdate.h:__rcu_read_unlock
   Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_lock_acquire
   Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_lock_release
   Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_read_lock
   Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_read_unlock
   Cyclomatic Complexity 1 include/linux/jiffies.h:_msecs_to_jiffies
   Cyclomatic Complexity 3 include/linux/jiffies.h:msecs_to_jiffies
   Cyclomatic Complexity 1 include/linux/timekeeping.h:ktime_get_ns
   Cyclomatic Complexity 1 include/linux/timer.h:timer_pending
   Cyclomatic Complexity 1 include/linux/kasan.h:kasan_kmalloc
   Cyclomatic Complexity 28 include/linux/slab.h:kmalloc_index
   Cyclomatic Complexity 1 include/linux/slab.h:kmem_cache_alloc_trace
   Cyclomatic Complexity 1 include/linux/slab.h:kmalloc_order_trace
   Cyclomatic Complexity 68 include/linux/slab.h:kmalloc_large
   Cyclomatic Complexity 5 include/linux/slab.h:kmalloc
   Cyclomatic Complexity 5 include/linux/slab.h:kmalloc_array
   Cyclomatic Complexity 1 include/linux/slab.h:kcalloc
   Cyclomatic Complexity 1 include/linux/refcount.h:refcount_read
   Cyclomatic Complexity 1 arch/x86/include/asm/checksum_64.h:add32_with_carry
   Cyclomatic Complexity 1 arch/x86/include/asm/checksum_64.h:csum_add
   Cyclomatic Complexity 1 include/net/checksum.h:csum_sub
   Cyclomatic Complexity 4 include/linux/idr.h:idr_alloc
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_end_pointer
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_queue_empty
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_queue_is_last
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_queue_next
   Cyclomatic Complexity 3 include/linux/skbuff.h:skb_cloned
   Cyclomatic Complexity 2 include/linux/skbuff.h:skb_header_cloned
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_shared
   Cyclomatic Complexity 2 include/linux/skbuff.h:skb_peek
   Cyclomatic Complexity 2 include/linux/skbuff.h:skb_peek_tail
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_queue_len
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_queue_head_init
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_insert
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_queue_splice
   Cyclomatic Complexity 2 include/linux/skbuff.h:skb_queue_splice_init
   Cyclomatic Complexity 2 include/linux/skbuff.h:skb_queue_splice_tail
   Cyclomatic Complexity 2 include/linux/skbuff.h:skb_queue_splice_tail_init
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_queue_before
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_queue_tail
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_unlink
   Cyclomatic Complexity 2 include/linux/skbuff.h:__skb_dequeue
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_is_nonlinear
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_tail_pointer
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_put_zero
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_put_data
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_headroom
   Cyclomatic Complexity 2 include/linux/skbuff.h:skb_tailroom
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_reserve
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_reset_transport_header
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_set_transport_header
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_network_header
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_reset_network_header
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_set_network_header
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_reset_mac_header
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_set_mac_header

vim +3581 net/mac80211/tx.c

  3553  
  3554  void __ieee80211_subif_start_xmit(struct sk_buff *skb,
  3555                                    struct net_device *dev,
  3556                                    u32 info_flags)
  3557  {
  3558          struct ieee80211_sub_if_data *sdata = 
IEEE80211_DEV_TO_SUB_IF(dev);
  3559          struct sta_info *sta;
  3560          struct sk_buff *next;
  3561  
  3562          if (unlikely(skb->len < ETH_HLEN)) {
  3563                  kfree_skb(skb);
  3564                  return;
  3565          }
  3566  
  3567          rcu_read_lock();
  3568  
  3569          if (ieee80211_lookup_ra_sta(sdata, skb, &sta))
  3570                  goto out_free;
  3571  
  3572          if (!IS_ERR_OR_NULL(sta)) {
  3573                  struct ieee80211_fast_tx *fast_tx;
  3574  
  3575                  /* We need a bit of data queued to build aggregates 
properly, so
  3576                   * instruct the TCP stack to allow more than a single 
ms of data
  3577                   * to be queued in the stack. The value is a bit-shift 
of 1
  3578                   * second, so 8 is ~4ms of queued data. Only affects 
local TCP
  3579                   * sockets.
  3580                   */
> 3581                  sk_pacing_shift_update(skb->sk, 8);
  3582  
  3583                  fast_tx = rcu_dereference(sta->fast_tx);
  3584  
  3585                  if (fast_tx &&
  3586                      ieee80211_xmit_fast(sdata, sta, fast_tx, skb))
  3587                          goto out;
  3588          }
  3589  
  3590          if (skb_is_gso(skb)) {
  3591                  struct sk_buff *segs;
  3592  
  3593                  segs = skb_gso_segment(skb, 0);
  3594                  if (IS_ERR(segs)) {
  3595                          goto out_free;
  3596                  } else if (segs) {
  3597                          consume_skb(skb);
  3598                          skb = segs;
  3599                  }
  3600          } else {
  3601                  /* we cannot process non-linear frames on this path */
  3602                  if (skb_linearize(skb)) {
  3603                          kfree_skb(skb);
  3604                          goto out;
  3605                  }
  3606  
  3607                  /* the frame could be fragmented, software-encrypted, 
and other
  3608                   * things so we cannot really handle checksum offload 
with it -
  3609                   * fix it up in software before we handle anything else.
  3610                   */
  3611                  if (skb->ip_summed == CHECKSUM_PARTIAL) {
  3612                          skb_set_transport_header(skb,
  3613                                                   
skb_checksum_start_offset(skb));
  3614                          if (skb_checksum_help(skb))
  3615                                  goto out_free;
  3616                  }
  3617          }
  3618  
  3619          next = skb;
  3620          while (next) {
  3621                  skb = next;
  3622                  next = skb->next;
  3623  
  3624                  skb->prev = NULL;
  3625                  skb->next = NULL;
  3626  
  3627                  skb = ieee80211_build_hdr(sdata, skb, info_flags, sta);
  3628                  if (IS_ERR(skb))
  3629                          goto out;
  3630  
  3631                  ieee80211_tx_stats(dev, skb->len);
  3632  
  3633                  ieee80211_xmit(sdata, sta, skb);
  3634          }
  3635          goto out;
  3636   out_free:
  3637          kfree_skb(skb);
  3638   out:
  3639          rcu_read_unlock();
  3640  }
  3641  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to