Hi Magnus, I love your patch! Yet something to improve:
[auto build test ERROR on bpf-next/master] url: https://github.com/0day-ci/linux/commits/Magnus-Karlsson/i40e-fix-possible-compiler-warning-in-xsk-TX-path/20180831-095442 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master config: ia64-allmodconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 8.1.0 reproduce: 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 GCC_VERSION=8.1.0 make.cross ARCH=ia64 Note: the linux-review/Magnus-Karlsson/i40e-fix-possible-compiler-warning-in-xsk-TX-path/20180831-095442 HEAD 9b1f94c22aa3118f7657ec5a5124135bab6eb50b builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>): drivers/net//ethernet/intel/i40e/i40e_xsk.c: In function 'i40e_reuse_rx_buffer_zc': >> drivers/net//ethernet/intel/i40e/i40e_xsk.c:445:55: error: 'struct xdp_umem' >> has no member named 'props' unsigned long mask = (unsigned long)rx_ring->xsk_umem->props.chunk_mask; ^~ drivers/net//ethernet/intel/i40e/i40e_xsk.c: In function 'i40e_zca_free': drivers/net//ethernet/intel/i40e/i40e_xsk.c:480:26: error: 'struct xdp_umem' has no member named 'props' mask = rx_ring->xsk_umem->props.chunk_mask; ^~ vim +445 drivers/net//ethernet/intel/i40e/i40e_xsk.c 0a714186 Björn Töpel 2018-08-28 432 0a714186 Björn Töpel 2018-08-28 433 /** 0a714186 Björn Töpel 2018-08-28 434 * i40e_reuse_rx_buffer_zc - Recycle an Rx buffer 0a714186 Björn Töpel 2018-08-28 435 * @rx_ring: Rx ring 0a714186 Björn Töpel 2018-08-28 436 * @old_bi: The Rx buffer to recycle 0a714186 Björn Töpel 2018-08-28 437 * 0a714186 Björn Töpel 2018-08-28 438 * This function recycles a finished Rx buffer, and places it on the 0a714186 Björn Töpel 2018-08-28 439 * recycle queue (next_to_alloc). 0a714186 Björn Töpel 2018-08-28 440 **/ 0a714186 Björn Töpel 2018-08-28 441 static void i40e_reuse_rx_buffer_zc(struct i40e_ring *rx_ring, 0a714186 Björn Töpel 2018-08-28 442 struct i40e_rx_buffer *old_bi) 0a714186 Björn Töpel 2018-08-28 443 { 0a714186 Björn Töpel 2018-08-28 444 struct i40e_rx_buffer *new_bi = &rx_ring->rx_bi[rx_ring->next_to_alloc]; 0a714186 Björn Töpel 2018-08-28 @445 unsigned long mask = (unsigned long)rx_ring->xsk_umem->props.chunk_mask; 0a714186 Björn Töpel 2018-08-28 446 u64 hr = rx_ring->xsk_umem->headroom + XDP_PACKET_HEADROOM; 0a714186 Björn Töpel 2018-08-28 447 u16 nta = rx_ring->next_to_alloc; 0a714186 Björn Töpel 2018-08-28 448 0a714186 Björn Töpel 2018-08-28 449 /* update, and store next to alloc */ 0a714186 Björn Töpel 2018-08-28 450 nta++; 0a714186 Björn Töpel 2018-08-28 451 rx_ring->next_to_alloc = (nta < rx_ring->count) ? nta : 0; 0a714186 Björn Töpel 2018-08-28 452 0a714186 Björn Töpel 2018-08-28 453 /* transfer page from old buffer to new buffer */ 0a714186 Björn Töpel 2018-08-28 454 new_bi->dma = old_bi->dma & mask; 0a714186 Björn Töpel 2018-08-28 455 new_bi->dma += hr; 0a714186 Björn Töpel 2018-08-28 456 0a714186 Björn Töpel 2018-08-28 457 new_bi->addr = (void *)((unsigned long)old_bi->addr & mask); 0a714186 Björn Töpel 2018-08-28 458 new_bi->addr += hr; 0a714186 Björn Töpel 2018-08-28 459 0a714186 Björn Töpel 2018-08-28 460 new_bi->handle = old_bi->handle & mask; 0a714186 Björn Töpel 2018-08-28 461 new_bi->handle += rx_ring->xsk_umem->headroom; 0a714186 Björn Töpel 2018-08-28 462 0a714186 Björn Töpel 2018-08-28 463 old_bi->addr = NULL; 0a714186 Björn Töpel 2018-08-28 464 } 0a714186 Björn Töpel 2018-08-28 465 :::::: The code at line 445 was first introduced by commit :::::: 0a714186d3c0f7c563a03537f98716457c1f5ae0 i40e: add AF_XDP zero-copy Rx support :::::: TO: Björn Töpel <bjorn.to...@intel.com> :::::: CC: Alexei Starovoitov <a...@kernel.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip