[linux-next:master 4524/8790] drivers/net/ethernet/intel/idpf/idpf_txrx.c:2909:undefined reference to `tcp_gro_complete'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   df964ce9ef9fea10cf131bf6bad8658fde7956f6
commit: a251eee62133774cf35ff829041377e721ef9c8c [4524/8790] idpf: add SRIOV support and other ndo_ops
config: loongarch-randconfig-r023-20230605 (https://download.01.org/0day-ci/archive/20231002/202310020136.RIwZa52o-lkp@xxxxxxxxx/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231002/202310020136.RIwZa52o-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310020136.RIwZa52o-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

   loongarch64-linux-ld: drivers/net/ethernet/intel/idpf/idpf_txrx.o: in function `idpf_rx_rsc':
>> drivers/net/ethernet/intel/idpf/idpf_txrx.c:2909:(.text+0x49cc): undefined reference to `tcp_gro_complete'


vim +2909 drivers/net/ethernet/intel/idpf/idpf_txrx.c

3a8845af66edb3 Alan Brady 2023-08-07  2845  
3a8845af66edb3 Alan Brady 2023-08-07  2846  /**
3a8845af66edb3 Alan Brady 2023-08-07  2847   * idpf_rx_rsc - Set the RSC fields in the skb
3a8845af66edb3 Alan Brady 2023-08-07  2848   * @rxq : Rx descriptor ring packet is being transacted on
3a8845af66edb3 Alan Brady 2023-08-07  2849   * @skb : pointer to current skb being populated
3a8845af66edb3 Alan Brady 2023-08-07  2850   * @rx_desc: Receive descriptor
3a8845af66edb3 Alan Brady 2023-08-07  2851   * @decoded: Decoded Rx packet type related fields
3a8845af66edb3 Alan Brady 2023-08-07  2852   *
3a8845af66edb3 Alan Brady 2023-08-07  2853   * Return 0 on success and error code on failure
3a8845af66edb3 Alan Brady 2023-08-07  2854   *
3a8845af66edb3 Alan Brady 2023-08-07  2855   * Populate the skb fields with the total number of RSC segments, RSC payload
3a8845af66edb3 Alan Brady 2023-08-07  2856   * length and packet type.
3a8845af66edb3 Alan Brady 2023-08-07  2857   */
3a8845af66edb3 Alan Brady 2023-08-07  2858  static int idpf_rx_rsc(struct idpf_queue *rxq, struct sk_buff *skb,
3a8845af66edb3 Alan Brady 2023-08-07  2859  		       struct virtchnl2_rx_flex_desc_adv_nic_3 *rx_desc,
3a8845af66edb3 Alan Brady 2023-08-07  2860  		       struct idpf_rx_ptype_decoded *decoded)
3a8845af66edb3 Alan Brady 2023-08-07  2861  {
3a8845af66edb3 Alan Brady 2023-08-07  2862  	u16 rsc_segments, rsc_seg_len;
3a8845af66edb3 Alan Brady 2023-08-07  2863  	bool ipv4, ipv6;
3a8845af66edb3 Alan Brady 2023-08-07  2864  	int len;
3a8845af66edb3 Alan Brady 2023-08-07  2865  
3a8845af66edb3 Alan Brady 2023-08-07  2866  	if (unlikely(!decoded->outer_ip))
3a8845af66edb3 Alan Brady 2023-08-07  2867  		return -EINVAL;
3a8845af66edb3 Alan Brady 2023-08-07  2868  
3a8845af66edb3 Alan Brady 2023-08-07  2869  	rsc_seg_len = le16_to_cpu(rx_desc->misc.rscseglen);
3a8845af66edb3 Alan Brady 2023-08-07  2870  	if (unlikely(!rsc_seg_len))
3a8845af66edb3 Alan Brady 2023-08-07  2871  		return -EINVAL;
3a8845af66edb3 Alan Brady 2023-08-07  2872  
3a8845af66edb3 Alan Brady 2023-08-07  2873  	ipv4 = IDPF_RX_PTYPE_TO_IPV(decoded, IDPF_RX_PTYPE_OUTER_IPV4);
3a8845af66edb3 Alan Brady 2023-08-07  2874  	ipv6 = IDPF_RX_PTYPE_TO_IPV(decoded, IDPF_RX_PTYPE_OUTER_IPV6);
3a8845af66edb3 Alan Brady 2023-08-07  2875  
3a8845af66edb3 Alan Brady 2023-08-07  2876  	if (unlikely(!(ipv4 ^ ipv6)))
3a8845af66edb3 Alan Brady 2023-08-07  2877  		return -EINVAL;
3a8845af66edb3 Alan Brady 2023-08-07  2878  
3a8845af66edb3 Alan Brady 2023-08-07  2879  	rsc_segments = DIV_ROUND_UP(skb->data_len, rsc_seg_len);
3a8845af66edb3 Alan Brady 2023-08-07  2880  	if (unlikely(rsc_segments == 1))
3a8845af66edb3 Alan Brady 2023-08-07  2881  		return 0;
3a8845af66edb3 Alan Brady 2023-08-07  2882  
3a8845af66edb3 Alan Brady 2023-08-07  2883  	NAPI_GRO_CB(skb)->count = rsc_segments;
3a8845af66edb3 Alan Brady 2023-08-07  2884  	skb_shinfo(skb)->gso_size = rsc_seg_len;
3a8845af66edb3 Alan Brady 2023-08-07  2885  
3a8845af66edb3 Alan Brady 2023-08-07  2886  	skb_reset_network_header(skb);
3a8845af66edb3 Alan Brady 2023-08-07  2887  	len = skb->len - skb_transport_offset(skb);
3a8845af66edb3 Alan Brady 2023-08-07  2888  
3a8845af66edb3 Alan Brady 2023-08-07  2889  	if (ipv4) {
3a8845af66edb3 Alan Brady 2023-08-07  2890  		struct iphdr *ipv4h = ip_hdr(skb);
3a8845af66edb3 Alan Brady 2023-08-07  2891  
3a8845af66edb3 Alan Brady 2023-08-07  2892  		skb_shinfo(skb)->gso_type = SKB_GSO_TCPV4;
3a8845af66edb3 Alan Brady 2023-08-07  2893  
3a8845af66edb3 Alan Brady 2023-08-07  2894  		/* Reset and set transport header offset in skb */
3a8845af66edb3 Alan Brady 2023-08-07  2895  		skb_set_transport_header(skb, sizeof(struct iphdr));
3a8845af66edb3 Alan Brady 2023-08-07  2896  
3a8845af66edb3 Alan Brady 2023-08-07  2897  		/* Compute the TCP pseudo header checksum*/
3a8845af66edb3 Alan Brady 2023-08-07  2898  		tcp_hdr(skb)->check =
3a8845af66edb3 Alan Brady 2023-08-07  2899  			~tcp_v4_check(len, ipv4h->saddr, ipv4h->daddr, 0);
3a8845af66edb3 Alan Brady 2023-08-07  2900  	} else {
3a8845af66edb3 Alan Brady 2023-08-07  2901  		struct ipv6hdr *ipv6h = ipv6_hdr(skb);
3a8845af66edb3 Alan Brady 2023-08-07  2902  
3a8845af66edb3 Alan Brady 2023-08-07  2903  		skb_shinfo(skb)->gso_type = SKB_GSO_TCPV6;
3a8845af66edb3 Alan Brady 2023-08-07  2904  		skb_set_transport_header(skb, sizeof(struct ipv6hdr));
3a8845af66edb3 Alan Brady 2023-08-07  2905  		tcp_hdr(skb)->check =
3a8845af66edb3 Alan Brady 2023-08-07  2906  			~tcp_v6_check(len, &ipv6h->saddr, &ipv6h->daddr, 0);
3a8845af66edb3 Alan Brady 2023-08-07  2907  	}
3a8845af66edb3 Alan Brady 2023-08-07  2908  
3a8845af66edb3 Alan Brady 2023-08-07 @2909  	tcp_gro_complete(skb);
3a8845af66edb3 Alan Brady 2023-08-07  2910  
3a8845af66edb3 Alan Brady 2023-08-07  2911  	u64_stats_update_begin(&rxq->stats_sync);
3a8845af66edb3 Alan Brady 2023-08-07  2912  	u64_stats_inc(&rxq->q_stats.rx.rsc_pkts);
3a8845af66edb3 Alan Brady 2023-08-07  2913  	u64_stats_update_end(&rxq->stats_sync);
3a8845af66edb3 Alan Brady 2023-08-07  2914  
3a8845af66edb3 Alan Brady 2023-08-07  2915  	return 0;
3a8845af66edb3 Alan Brady 2023-08-07  2916  }
3a8845af66edb3 Alan Brady 2023-08-07  2917  

:::::: The code at line 2909 was first introduced by commit
:::::: 3a8845af66edb340ba9210bb8a0da040c7d6e590 idpf: add RX splitq napi poll support

:::::: TO: Alan Brady <alan.brady@xxxxxxxxx>
:::::: CC: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux