Hi,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on net-next/master]
url:
https://github.com/0day-ci/linux/commits/sameehj-amazon-com/Introduce-XDP...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
c23fcbbc6aa4e0bb615e8a7f23e1f32aec235a1c
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.4.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=7.4.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from arch/ia64/include/uapi/asm/intrinsics.h:22:0,
from arch/ia64/include/asm/intrinsics.h:11,
from arch/ia64/include/asm/bitops.h:19,
from include/linux/bitops.h:26,
from include/linux/kernel.h:12,
from include/linux/list.h:9,
from include/linux/timer.h:5,
from include/linux/netdevice.h:24,
from include/trace/events/xdp.h:8,
from include/linux/bpf_trace.h:5,
from drivers/net/ethernet/amazon/ena/ena_netdev.c:36:
drivers/net/ethernet/amazon/ena/ena_netdev.c: In function 'ena_xdp_set':
arch/ia64/include/uapi/asm/cmpxchg.h:57:2: warning: value computed is not used
[-Wunused-value]
((__typeof__(*(ptr))) __xchg((unsigned long) (x), (ptr), sizeof(*(ptr))))
~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/ethernet/amazon/ena/ena_netdev.c:140:4: note: in
expansion of macro 'xchg'
xchg(&adapter->rx_ring[i].xdp_bpf_prog, prog);
^~~~
vim +/xchg +140 drivers/net/ethernet/amazon/ena/ena_netdev.c
34
35 #ifdef CONFIG_RFS_ACCEL
36 #include <linux/bpf_trace.h>
37 #include
<linux/cpu_rmap.h>
38 #endif /* CONFIG_RFS_ACCEL */
39 #include <linux/ethtool.h>
40 #include <linux/kernel.h>
41 #include <linux/module.h>
42 #include <linux/numa.h>
43 #include <linux/pci.h>
44 #include <linux/utsname.h>
45 #include <linux/version.h>
46 #include <linux/vmalloc.h>
47 #include <net/ip.h>
48
49 #include "ena_netdev.h"
50 #include "ena_pci_id_tbl.h"
51
52 static char version[] = DEVICE_NAME " v" DRV_MODULE_VERSION
"\n";
53
54
MODULE_AUTHOR("Amazon.com, Inc. or its affiliates");
55 MODULE_DESCRIPTION(DEVICE_NAME);
56 MODULE_LICENSE("GPL");
57 MODULE_VERSION(DRV_MODULE_VERSION);
58
59 /* Time in jiffies before concluding the transmitter is hung. */
60 #define TX_TIMEOUT (5 * HZ)
61
62 #define ENA_NAPI_BUDGET 64
63
64 #define DEFAULT_MSG_ENABLE (NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_IFUP | \
65 NETIF_MSG_TX_DONE | NETIF_MSG_TX_ERR | NETIF_MSG_RX_ERR)
66 static int debug = -1;
67 module_param(debug, int, 0);
68 MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
69
70 static struct ena_aenq_handlers aenq_handlers;
71
72 static struct workqueue_struct *ena_wq;
73
74 MODULE_DEVICE_TABLE(pci, ena_pci_tbl);
75
76 static int ena_rss_init_default(struct ena_adapter *adapter);
77 static void check_for_admin_com_state(struct ena_adapter *adapter);
78 static void ena_destroy_device(struct ena_adapter *adapter, bool graceful);
79 static int ena_restore_device(struct ena_adapter *adapter);
80
81 static void ena_tx_timeout(struct net_device *dev)
82 {
83 struct ena_adapter *adapter = netdev_priv(dev);
84
85 /* Change the state of the device to trigger reset
86 * Check that we are not in the middle or a trigger already
87 */
88
89 if (test_and_set_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags))
90 return;
91
92 adapter->reset_reason = ENA_REGS_RESET_OS_NETDEV_WD;
93 u64_stats_update_begin(&adapter->syncp);
94 adapter->dev_stats.tx_timeout++;
95 u64_stats_update_end(&adapter->syncp);
96
97 netif_err(adapter, tx_err, dev, "Transmit time out\n");
98 }
99
100 static void update_rx_ring_mtu(struct ena_adapter *adapter, int mtu)
101 {
102 int i;
103
104 for (i = 0; i < adapter->num_io_queues; i++)
105 adapter->rx_ring[i].mtu = mtu;
106 }
107
108 static int ena_xdp_execute(struct ena_ring *rx_ring, struct xdp_buff *xdp)
109 {
110 struct bpf_prog *xdp_prog = rx_ring->xdp_bpf_prog;
111 u32 verdict = XDP_PASS;
112
113 rcu_read_lock();
114
115 if (!xdp_prog)
116 goto out;
117
118 verdict = bpf_prog_run_xdp(xdp_prog, xdp);
119
120 if (unlikely(verdict == XDP_ABORTED))
121 trace_xdp_exception(rx_ring->netdev, xdp_prog, verdict);
122 else if (unlikely(verdict >= XDP_TX))
123 bpf_warn_invalid_xdp_action(verdict);
124 out:
125 rcu_read_unlock();
126 return verdict;
127 }
128
129 static int ena_xdp_set(struct net_device *netdev, struct netdev_bpf *bpf)
130 {
131 struct ena_adapter *adapter = netdev_priv(netdev);
132 struct bpf_prog *prog = bpf->prog;
133 struct bpf_prog *old_bpf_prog;
134 int i, prev_mtu;
135
136 if (ena_xdp_allowed(adapter)) {
137 old_bpf_prog = xchg(&adapter->xdp_bpf_prog, prog);
138
139 for (i = 0; i < adapter->num_io_queues; i++)
140 xchg(&adapter->rx_ring[i].xdp_bpf_prog, prog);
141
142 if (old_bpf_prog)
143 bpf_prog_put(old_bpf_prog);
144
145 prev_mtu = netdev->max_mtu;
146 netdev->max_mtu = prog ? ENA_XDP_MAX_MTU : adapter->max_mtu;
147 netif_info(adapter, drv, adapter->netdev, "xdp program set, changging the
max_mtu from %d to %d",
148 prev_mtu, netdev->max_mtu);
149
150 } else {
151 netif_err(adapter, drv, adapter->netdev, "Failed to set xdp program, the
current MTU (%d) is larger than the maximal allowed MTU (%lu) while xdp is on",
152 netdev->mtu, ENA_XDP_MAX_MTU);
153 NL_SET_ERR_MSG_MOD(bpf->extack, "Failed to set xdp program, the current
MTU is larger than the maximal allowed MTU. Check the dmesg for more info");
154 return -EINVAL;
155 }
156
157 return 0;
158 }
159
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation