[alobakin:xdp_hints 20/52] drivers/net/ethernet/freescale/dpaa/dpaa_eth.c:2553:3: error: call to undeclared function 'xdp_set_data_meta_invalid'; ISO C99 and later do not support implicit function declarations

From: kernel test robot
Date: Mon Jul 11 2022 - 01:35:23 EST


tree: https://github.com/alobakin/linux xdp_hints
head: e9f4215398901c2e3f477da53abc668ce7b7e320
commit: 62a8828e246dd5ebf5aa0dc2b4cc68960eb3dea4 [20/52] net, xdp: move XDP metadata helpers into new xdp_meta.h
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20220711/202207111325.Zy0bi2Yw-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 77a38f6839980bfac61babb40d83772c51427011)
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
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://github.com/alobakin/linux/commit/62a8828e246dd5ebf5aa0dc2b4cc68960eb3dea4
git remote add alobakin https://github.com/alobakin/linux
git fetch --no-tags alobakin xdp_hints
git checkout 62a8828e246dd5ebf5aa0dc2b4cc68960eb3dea4
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/gpu/drm/ drivers/net/ethernet/freescale/dpaa/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

>> drivers/net/ethernet/freescale/dpaa/dpaa_eth.c:2553:3: error: call to undeclared function 'xdp_set_data_meta_invalid'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
xdp_set_data_meta_invalid(&xdp);
^
>> drivers/net/ethernet/freescale/dpaa/dpaa_eth.c:2567:19: error: call to undeclared function 'xdp_data_meta_unsupported'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
*xdp_meta_len = xdp_data_meta_unsupported(&xdp) ? 0 :
^
2 errors generated.


vim +/xdp_set_data_meta_invalid +2553 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c

d57e57d0cd04be Camelia Groza 2020-11-25 2525
86c0c196cbe48f Camelia Groza 2020-11-25 2526 static u32 dpaa_run_xdp(struct dpaa_priv *priv, struct qm_fd *fd, void *vaddr,
d57e57d0cd04be Camelia Groza 2020-11-25 2527 struct dpaa_fq *dpaa_fq, unsigned int *xdp_meta_len)
86c0c196cbe48f Camelia Groza 2020-11-25 2528 {
86c0c196cbe48f Camelia Groza 2020-11-25 2529 ssize_t fd_off = qm_fd_get_offset(fd);
86c0c196cbe48f Camelia Groza 2020-11-25 2530 struct bpf_prog *xdp_prog;
d57e57d0cd04be Camelia Groza 2020-11-25 2531 struct xdp_frame *xdpf;
86c0c196cbe48f Camelia Groza 2020-11-25 2532 struct xdp_buff xdp;
86c0c196cbe48f Camelia Groza 2020-11-25 2533 u32 xdp_act;
a1e031ffb422bb Camelia Groza 2020-11-25 2534 int err;
86c0c196cbe48f Camelia Groza 2020-11-25 2535
86c0c196cbe48f Camelia Groza 2020-11-25 2536 xdp_prog = READ_ONCE(priv->xdp_prog);
547aabcac3251c Toke Høiland-Jørgensen 2021-06-24 2537 if (!xdp_prog)
86c0c196cbe48f Camelia Groza 2020-11-25 2538 return XDP_PASS;
86c0c196cbe48f Camelia Groza 2020-11-25 2539
43b5169d8355cc Lorenzo Bianconi 2020-12-22 2540 xdp_init_buff(&xdp, DPAA_BP_RAW_SIZE - DPAA_TX_PRIV_DATA_SIZE,
43b5169d8355cc Lorenzo Bianconi 2020-12-22 2541 &dpaa_fq->xdp_rxq);
be9df4aff65f18 Lorenzo Bianconi 2020-12-22 2542 xdp_prepare_buff(&xdp, vaddr + fd_off - XDP_PACKET_HEADROOM,
be9df4aff65f18 Lorenzo Bianconi 2020-12-22 2543 XDP_PACKET_HEADROOM, qm_fd_get_length(fd), true);
86c0c196cbe48f Camelia Groza 2020-11-25 2544
ae680bcbd06ae9 Camelia Groza 2020-11-25 2545 /* We reserve a fixed headroom of 256 bytes under the erratum and we
ae680bcbd06ae9 Camelia Groza 2020-11-25 2546 * offer it all to XDP programs to use. If no room is left for the
ae680bcbd06ae9 Camelia Groza 2020-11-25 2547 * xdpf backpointer on TX, we will need to copy the data.
ae680bcbd06ae9 Camelia Groza 2020-11-25 2548 * Disable metadata support since data realignments might be required
ae680bcbd06ae9 Camelia Groza 2020-11-25 2549 * and the information can be lost.
ae680bcbd06ae9 Camelia Groza 2020-11-25 2550 */
ae680bcbd06ae9 Camelia Groza 2020-11-25 2551 #ifdef CONFIG_DPAA_ERRATUM_A050385
ae680bcbd06ae9 Camelia Groza 2020-11-25 2552 if (unlikely(fman_has_errata_a050385())) {
ae680bcbd06ae9 Camelia Groza 2020-11-25 @2553 xdp_set_data_meta_invalid(&xdp);
ae680bcbd06ae9 Camelia Groza 2020-11-25 2554 xdp.data_hard_start = vaddr;
ae680bcbd06ae9 Camelia Groza 2020-11-25 2555 xdp.frame_sz = DPAA_BP_RAW_SIZE;
ae680bcbd06ae9 Camelia Groza 2020-11-25 2556 }
ae680bcbd06ae9 Camelia Groza 2020-11-25 2557 #endif
ae680bcbd06ae9 Camelia Groza 2020-11-25 2558
86c0c196cbe48f Camelia Groza 2020-11-25 2559 xdp_act = bpf_prog_run_xdp(xdp_prog, &xdp);
86c0c196cbe48f Camelia Groza 2020-11-25 2560
86c0c196cbe48f Camelia Groza 2020-11-25 2561 /* Update the length and the offset of the FD */
86c0c196cbe48f Camelia Groza 2020-11-25 2562 qm_fd_set_contig(fd, xdp.data - vaddr, xdp.data_end - xdp.data);
86c0c196cbe48f Camelia Groza 2020-11-25 2563
86c0c196cbe48f Camelia Groza 2020-11-25 2564 switch (xdp_act) {
86c0c196cbe48f Camelia Groza 2020-11-25 2565 case XDP_PASS:
ae680bcbd06ae9 Camelia Groza 2020-11-25 2566 #ifdef CONFIG_DPAA_ERRATUM_A050385
ae680bcbd06ae9 Camelia Groza 2020-11-25 @2567 *xdp_meta_len = xdp_data_meta_unsupported(&xdp) ? 0 :
ae680bcbd06ae9 Camelia Groza 2020-11-25 2568 xdp.data - xdp.data_meta;
ae680bcbd06ae9 Camelia Groza 2020-11-25 2569 #else
86c0c196cbe48f Camelia Groza 2020-11-25 2570 *xdp_meta_len = xdp.data - xdp.data_meta;
ae680bcbd06ae9 Camelia Groza 2020-11-25 2571 #endif
d57e57d0cd04be Camelia Groza 2020-11-25 2572 break;
d57e57d0cd04be Camelia Groza 2020-11-25 2573 case XDP_TX:
d57e57d0cd04be Camelia Groza 2020-11-25 2574 /* We can access the full headroom when sending the frame
d57e57d0cd04be Camelia Groza 2020-11-25 2575 * back out
d57e57d0cd04be Camelia Groza 2020-11-25 2576 */
d57e57d0cd04be Camelia Groza 2020-11-25 2577 xdp.data_hard_start = vaddr;
d57e57d0cd04be Camelia Groza 2020-11-25 2578 xdp.frame_sz = DPAA_BP_RAW_SIZE;
d57e57d0cd04be Camelia Groza 2020-11-25 2579 xdpf = xdp_convert_buff_to_frame(&xdp);
d57e57d0cd04be Camelia Groza 2020-11-25 2580 if (unlikely(!xdpf)) {
d57e57d0cd04be Camelia Groza 2020-11-25 2581 free_pages((unsigned long)vaddr, 0);
d57e57d0cd04be Camelia Groza 2020-11-25 2582 break;
d57e57d0cd04be Camelia Groza 2020-11-25 2583 }
d57e57d0cd04be Camelia Groza 2020-11-25 2584
d57e57d0cd04be Camelia Groza 2020-11-25 2585 if (dpaa_xdp_xmit_frame(priv->net_dev, xdpf))
d57e57d0cd04be Camelia Groza 2020-11-25 2586 xdp_return_frame_rx_napi(xdpf);
d57e57d0cd04be Camelia Groza 2020-11-25 2587
a1e031ffb422bb Camelia Groza 2020-11-25 2588 break;
a1e031ffb422bb Camelia Groza 2020-11-25 2589 case XDP_REDIRECT:
a1e031ffb422bb Camelia Groza 2020-11-25 2590 /* Allow redirect to use the full headroom */
a1e031ffb422bb Camelia Groza 2020-11-25 2591 xdp.data_hard_start = vaddr;
a1e031ffb422bb Camelia Groza 2020-11-25 2592 xdp.frame_sz = DPAA_BP_RAW_SIZE;
a1e031ffb422bb Camelia Groza 2020-11-25 2593
a1e031ffb422bb Camelia Groza 2020-11-25 2594 err = xdp_do_redirect(priv->net_dev, &xdp, xdp_prog);
a1e031ffb422bb Camelia Groza 2020-11-25 2595 if (err) {
a1e031ffb422bb Camelia Groza 2020-11-25 2596 trace_xdp_exception(priv->net_dev, xdp_prog, xdp_act);
a1e031ffb422bb Camelia Groza 2020-11-25 2597 free_pages((unsigned long)vaddr, 0);
a1e031ffb422bb Camelia Groza 2020-11-25 2598 }
86c0c196cbe48f Camelia Groza 2020-11-25 2599 break;
86c0c196cbe48f Camelia Groza 2020-11-25 2600 default:
c8064e5b4adac5 Paolo Abeni 2021-11-30 2601 bpf_warn_invalid_xdp_action(priv->net_dev, xdp_prog, xdp_act);
86c0c196cbe48f Camelia Groza 2020-11-25 2602 fallthrough;
86c0c196cbe48f Camelia Groza 2020-11-25 2603 case XDP_ABORTED:
86c0c196cbe48f Camelia Groza 2020-11-25 2604 trace_xdp_exception(priv->net_dev, xdp_prog, xdp_act);
86c0c196cbe48f Camelia Groza 2020-11-25 2605 fallthrough;
86c0c196cbe48f Camelia Groza 2020-11-25 2606 case XDP_DROP:
86c0c196cbe48f Camelia Groza 2020-11-25 2607 /* Free the buffer */
86c0c196cbe48f Camelia Groza 2020-11-25 2608 free_pages((unsigned long)vaddr, 0);
86c0c196cbe48f Camelia Groza 2020-11-25 2609 break;
86c0c196cbe48f Camelia Groza 2020-11-25 2610 }
86c0c196cbe48f Camelia Groza 2020-11-25 2611
86c0c196cbe48f Camelia Groza 2020-11-25 2612 return xdp_act;
86c0c196cbe48f Camelia Groza 2020-11-25 2613 }
86c0c196cbe48f Camelia Groza 2020-11-25 2614

:::::: The code at line 2553 was first introduced by commit
:::::: ae680bcbd06ae9189e0102f8cdb5fd938b00725f dpaa_eth: implement the A050385 erratum workaround for XDP

:::::: TO: Camelia Groza <camelia.groza@xxxxxxx>
:::::: CC: Jakub Kicinski <kuba@xxxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://01.org/lkp