From: kernel test robot <lkp@intel.com>
To: Lorenzo Bianconi <lorenzo@kernel.org>,
bpf@vger.kernel.org, netdev@vger.kernel.org
Cc: kbuild-all@lists.01.org, lorenzo.bianconi@redhat.com,
davem@davemloft.net, kuba@kernel.org, ast@kernel.org,
daniel@iogearbox.net, shayagr@amazon.com, sameehj@amazon.com,
john.fastabend@gmail.com
Subject: Re: [PATCH v8 bpf-next 02/14] xdp: add xdp_shared_info data structure
Date: Fri, 9 Apr 2021 02:06:12 +0800 [thread overview]
Message-ID: <202104090119.efykjNCl-lkp@intel.com> (raw)
In-Reply-To: <b204c5d4514134e1b2de9c1959da71514d1f1340.1617885385.git.lorenzo@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 12920 bytes --]
Hi Lorenzo,
I love your patch! Yet something to improve:
[auto build test ERROR on bpf-next/master]
url: https://github.com/0day-ci/linux/commits/Lorenzo-Bianconi/mvneta-introduce-XDP-multi-buffer-support/20210408-205429
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) 9.3.0
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
# https://github.com/0day-ci/linux/commit/3652b59c1a912ad4f2d609e074eeb332f44ba4d7
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Lorenzo-Bianconi/mvneta-introduce-XDP-multi-buffer-support/20210408-205429
git checkout 3652b59c1a912ad4f2d609e074eeb332f44ba4d7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/net/ethernet/freescale/enetc/enetc.c: In function 'enetc_xdp_frame_to_xdp_tx_swbd':
>> drivers/net/ethernet/freescale/enetc/enetc.c:888:9: error: assignment to 'struct skb_shared_info *' from incompatible pointer type 'struct xdp_shared_info *' [-Werror=incompatible-pointer-types]
888 | shinfo = xdp_get_shared_info_from_frame(xdp_frame);
| ^
drivers/net/ethernet/freescale/enetc/enetc.c: In function 'enetc_map_rx_buff_to_xdp':
drivers/net/ethernet/freescale/enetc/enetc.c:975:9: error: assignment to 'struct skb_shared_info *' from incompatible pointer type 'struct xdp_shared_info *' [-Werror=incompatible-pointer-types]
975 | shinfo = xdp_get_shared_info_from_buff(xdp_buff);
| ^
drivers/net/ethernet/freescale/enetc/enetc.c: In function 'enetc_add_rx_buff_to_xdp':
>> drivers/net/ethernet/freescale/enetc/enetc.c:982:35: error: initialization of 'struct skb_shared_info *' from incompatible pointer type 'struct xdp_shared_info *' [-Werror=incompatible-pointer-types]
982 | struct skb_shared_info *shinfo = xdp_get_shared_info_from_buff(xdp_buff);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +888 drivers/net/ethernet/freescale/enetc/enetc.c
7ed2bc80074ed4 Vladimir Oltean 2021-03-31 858
9d2b68cc108db2 Vladimir Oltean 2021-03-31 859 static int enetc_xdp_frame_to_xdp_tx_swbd(struct enetc_bdr *tx_ring,
9d2b68cc108db2 Vladimir Oltean 2021-03-31 860 struct enetc_tx_swbd *xdp_tx_arr,
9d2b68cc108db2 Vladimir Oltean 2021-03-31 861 struct xdp_frame *xdp_frame)
9d2b68cc108db2 Vladimir Oltean 2021-03-31 862 {
9d2b68cc108db2 Vladimir Oltean 2021-03-31 863 struct enetc_tx_swbd *xdp_tx_swbd = &xdp_tx_arr[0];
9d2b68cc108db2 Vladimir Oltean 2021-03-31 864 struct skb_shared_info *shinfo;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 865 void *data = xdp_frame->data;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 866 int len = xdp_frame->len;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 867 skb_frag_t *frag;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 868 dma_addr_t dma;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 869 unsigned int f;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 870 int n = 0;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 871
9d2b68cc108db2 Vladimir Oltean 2021-03-31 872 dma = dma_map_single(tx_ring->dev, data, len, DMA_TO_DEVICE);
9d2b68cc108db2 Vladimir Oltean 2021-03-31 873 if (unlikely(dma_mapping_error(tx_ring->dev, dma))) {
9d2b68cc108db2 Vladimir Oltean 2021-03-31 874 netdev_err(tx_ring->ndev, "DMA map error\n");
9d2b68cc108db2 Vladimir Oltean 2021-03-31 875 return -1;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 876 }
9d2b68cc108db2 Vladimir Oltean 2021-03-31 877
9d2b68cc108db2 Vladimir Oltean 2021-03-31 878 xdp_tx_swbd->dma = dma;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 879 xdp_tx_swbd->dir = DMA_TO_DEVICE;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 880 xdp_tx_swbd->len = len;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 881 xdp_tx_swbd->is_xdp_redirect = true;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 882 xdp_tx_swbd->is_eof = false;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 883 xdp_tx_swbd->xdp_frame = NULL;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 884
9d2b68cc108db2 Vladimir Oltean 2021-03-31 885 n++;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 886 xdp_tx_swbd = &xdp_tx_arr[n];
9d2b68cc108db2 Vladimir Oltean 2021-03-31 887
9d2b68cc108db2 Vladimir Oltean 2021-03-31 @888 shinfo = xdp_get_shared_info_from_frame(xdp_frame);
9d2b68cc108db2 Vladimir Oltean 2021-03-31 889
9d2b68cc108db2 Vladimir Oltean 2021-03-31 890 for (f = 0, frag = &shinfo->frags[0]; f < shinfo->nr_frags;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 891 f++, frag++) {
9d2b68cc108db2 Vladimir Oltean 2021-03-31 892 data = skb_frag_address(frag);
9d2b68cc108db2 Vladimir Oltean 2021-03-31 893 len = skb_frag_size(frag);
9d2b68cc108db2 Vladimir Oltean 2021-03-31 894
9d2b68cc108db2 Vladimir Oltean 2021-03-31 895 dma = dma_map_single(tx_ring->dev, data, len, DMA_TO_DEVICE);
9d2b68cc108db2 Vladimir Oltean 2021-03-31 896 if (unlikely(dma_mapping_error(tx_ring->dev, dma))) {
9d2b68cc108db2 Vladimir Oltean 2021-03-31 897 /* Undo the DMA mapping for all fragments */
9d2b68cc108db2 Vladimir Oltean 2021-03-31 898 while (n-- >= 0)
9d2b68cc108db2 Vladimir Oltean 2021-03-31 899 enetc_unmap_tx_buff(tx_ring, &xdp_tx_arr[n]);
9d2b68cc108db2 Vladimir Oltean 2021-03-31 900
9d2b68cc108db2 Vladimir Oltean 2021-03-31 901 netdev_err(tx_ring->ndev, "DMA map error\n");
9d2b68cc108db2 Vladimir Oltean 2021-03-31 902 return -1;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 903 }
9d2b68cc108db2 Vladimir Oltean 2021-03-31 904
9d2b68cc108db2 Vladimir Oltean 2021-03-31 905 xdp_tx_swbd->dma = dma;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 906 xdp_tx_swbd->dir = DMA_TO_DEVICE;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 907 xdp_tx_swbd->len = len;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 908 xdp_tx_swbd->is_xdp_redirect = true;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 909 xdp_tx_swbd->is_eof = false;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 910 xdp_tx_swbd->xdp_frame = NULL;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 911
9d2b68cc108db2 Vladimir Oltean 2021-03-31 912 n++;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 913 xdp_tx_swbd = &xdp_tx_arr[n];
9d2b68cc108db2 Vladimir Oltean 2021-03-31 914 }
9d2b68cc108db2 Vladimir Oltean 2021-03-31 915
9d2b68cc108db2 Vladimir Oltean 2021-03-31 916 xdp_tx_arr[n - 1].is_eof = true;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 917 xdp_tx_arr[n - 1].xdp_frame = xdp_frame;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 918
9d2b68cc108db2 Vladimir Oltean 2021-03-31 919 return n;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 920 }
9d2b68cc108db2 Vladimir Oltean 2021-03-31 921
9d2b68cc108db2 Vladimir Oltean 2021-03-31 922 int enetc_xdp_xmit(struct net_device *ndev, int num_frames,
9d2b68cc108db2 Vladimir Oltean 2021-03-31 923 struct xdp_frame **frames, u32 flags)
9d2b68cc108db2 Vladimir Oltean 2021-03-31 924 {
9d2b68cc108db2 Vladimir Oltean 2021-03-31 925 struct enetc_tx_swbd xdp_redirect_arr[ENETC_MAX_SKB_FRAGS] = {0};
9d2b68cc108db2 Vladimir Oltean 2021-03-31 926 struct enetc_ndev_priv *priv = netdev_priv(ndev);
9d2b68cc108db2 Vladimir Oltean 2021-03-31 927 struct enetc_bdr *tx_ring;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 928 int xdp_tx_bd_cnt, i, k;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 929 int xdp_tx_frm_cnt = 0;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 930
9d2b68cc108db2 Vladimir Oltean 2021-03-31 931 tx_ring = priv->tx_ring[smp_processor_id()];
9d2b68cc108db2 Vladimir Oltean 2021-03-31 932
9d2b68cc108db2 Vladimir Oltean 2021-03-31 933 prefetchw(ENETC_TXBD(*tx_ring, tx_ring->next_to_use));
9d2b68cc108db2 Vladimir Oltean 2021-03-31 934
9d2b68cc108db2 Vladimir Oltean 2021-03-31 935 for (k = 0; k < num_frames; k++) {
9d2b68cc108db2 Vladimir Oltean 2021-03-31 936 xdp_tx_bd_cnt = enetc_xdp_frame_to_xdp_tx_swbd(tx_ring,
9d2b68cc108db2 Vladimir Oltean 2021-03-31 937 xdp_redirect_arr,
9d2b68cc108db2 Vladimir Oltean 2021-03-31 938 frames[k]);
9d2b68cc108db2 Vladimir Oltean 2021-03-31 939 if (unlikely(xdp_tx_bd_cnt < 0))
9d2b68cc108db2 Vladimir Oltean 2021-03-31 940 break;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 941
9d2b68cc108db2 Vladimir Oltean 2021-03-31 942 if (unlikely(!enetc_xdp_tx(tx_ring, xdp_redirect_arr,
9d2b68cc108db2 Vladimir Oltean 2021-03-31 943 xdp_tx_bd_cnt))) {
9d2b68cc108db2 Vladimir Oltean 2021-03-31 944 for (i = 0; i < xdp_tx_bd_cnt; i++)
9d2b68cc108db2 Vladimir Oltean 2021-03-31 945 enetc_unmap_tx_buff(tx_ring,
9d2b68cc108db2 Vladimir Oltean 2021-03-31 946 &xdp_redirect_arr[i]);
9d2b68cc108db2 Vladimir Oltean 2021-03-31 947 tx_ring->stats.xdp_tx_drops++;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 948 break;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 949 }
9d2b68cc108db2 Vladimir Oltean 2021-03-31 950
9d2b68cc108db2 Vladimir Oltean 2021-03-31 951 xdp_tx_frm_cnt++;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 952 }
9d2b68cc108db2 Vladimir Oltean 2021-03-31 953
9d2b68cc108db2 Vladimir Oltean 2021-03-31 954 if (unlikely((flags & XDP_XMIT_FLUSH) || k != xdp_tx_frm_cnt))
9d2b68cc108db2 Vladimir Oltean 2021-03-31 955 enetc_update_tx_ring_tail(tx_ring);
9d2b68cc108db2 Vladimir Oltean 2021-03-31 956
9d2b68cc108db2 Vladimir Oltean 2021-03-31 957 tx_ring->stats.xdp_tx += xdp_tx_frm_cnt;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 958
9d2b68cc108db2 Vladimir Oltean 2021-03-31 959 return xdp_tx_frm_cnt;
9d2b68cc108db2 Vladimir Oltean 2021-03-31 960 }
9d2b68cc108db2 Vladimir Oltean 2021-03-31 961
d1b15102dd16ad Vladimir Oltean 2021-03-31 962 static void enetc_map_rx_buff_to_xdp(struct enetc_bdr *rx_ring, int i,
d1b15102dd16ad Vladimir Oltean 2021-03-31 963 struct xdp_buff *xdp_buff, u16 size)
d1b15102dd16ad Vladimir Oltean 2021-03-31 964 {
d1b15102dd16ad Vladimir Oltean 2021-03-31 965 struct enetc_rx_swbd *rx_swbd = enetc_get_rx_buff(rx_ring, i, size);
d1b15102dd16ad Vladimir Oltean 2021-03-31 966 void *hard_start = page_address(rx_swbd->page) + rx_swbd->page_offset;
d1b15102dd16ad Vladimir Oltean 2021-03-31 967 struct skb_shared_info *shinfo;
d1b15102dd16ad Vladimir Oltean 2021-03-31 968
7ed2bc80074ed4 Vladimir Oltean 2021-03-31 969 /* To be used for XDP_TX */
7ed2bc80074ed4 Vladimir Oltean 2021-03-31 970 rx_swbd->len = size;
7ed2bc80074ed4 Vladimir Oltean 2021-03-31 971
d1b15102dd16ad Vladimir Oltean 2021-03-31 972 xdp_prepare_buff(xdp_buff, hard_start - rx_ring->buffer_offset,
d1b15102dd16ad Vladimir Oltean 2021-03-31 973 rx_ring->buffer_offset, size, false);
d1b15102dd16ad Vladimir Oltean 2021-03-31 974
d1b15102dd16ad Vladimir Oltean 2021-03-31 975 shinfo = xdp_get_shared_info_from_buff(xdp_buff);
d1b15102dd16ad Vladimir Oltean 2021-03-31 976 shinfo->nr_frags = 0;
d1b15102dd16ad Vladimir Oltean 2021-03-31 977 }
d1b15102dd16ad Vladimir Oltean 2021-03-31 978
d1b15102dd16ad Vladimir Oltean 2021-03-31 979 static void enetc_add_rx_buff_to_xdp(struct enetc_bdr *rx_ring, int i,
d1b15102dd16ad Vladimir Oltean 2021-03-31 980 u16 size, struct xdp_buff *xdp_buff)
d1b15102dd16ad Vladimir Oltean 2021-03-31 981 {
d1b15102dd16ad Vladimir Oltean 2021-03-31 @982 struct skb_shared_info *shinfo = xdp_get_shared_info_from_buff(xdp_buff);
d1b15102dd16ad Vladimir Oltean 2021-03-31 983 struct enetc_rx_swbd *rx_swbd = enetc_get_rx_buff(rx_ring, i, size);
d1b15102dd16ad Vladimir Oltean 2021-03-31 984 skb_frag_t *frag = &shinfo->frags[shinfo->nr_frags];
d1b15102dd16ad Vladimir Oltean 2021-03-31 985
7ed2bc80074ed4 Vladimir Oltean 2021-03-31 986 /* To be used for XDP_TX */
7ed2bc80074ed4 Vladimir Oltean 2021-03-31 987 rx_swbd->len = size;
7ed2bc80074ed4 Vladimir Oltean 2021-03-31 988
d1b15102dd16ad Vladimir Oltean 2021-03-31 989 skb_frag_off_set(frag, rx_swbd->page_offset);
d1b15102dd16ad Vladimir Oltean 2021-03-31 990 skb_frag_size_set(frag, size);
d1b15102dd16ad Vladimir Oltean 2021-03-31 991 __skb_frag_set_page(frag, rx_swbd->page);
d1b15102dd16ad Vladimir Oltean 2021-03-31 992
d1b15102dd16ad Vladimir Oltean 2021-03-31 993 shinfo->nr_frags++;
d1b15102dd16ad Vladimir Oltean 2021-03-31 994 }
d1b15102dd16ad Vladimir Oltean 2021-03-31 995
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 63872 bytes --]
next prev parent reply other threads:[~2021-04-08 18:07 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-08 12:50 [PATCH v8 bpf-next 00/14] mvneta: introduce XDP multi-buffer support Lorenzo Bianconi
2021-04-08 12:50 ` [PATCH v8 bpf-next 01/14] xdp: introduce mb in xdp_buff/xdp_frame Lorenzo Bianconi
2021-04-08 18:17 ` Vladimir Oltean
2021-04-09 16:03 ` Lorenzo Bianconi
2021-04-29 13:36 ` Jesper Dangaard Brouer
2021-04-29 13:54 ` Lorenzo Bianconi
2021-04-08 12:50 ` [PATCH v8 bpf-next 02/14] xdp: add xdp_shared_info data structure Lorenzo Bianconi
2021-04-08 13:39 ` Vladimir Oltean
2021-04-08 14:26 ` Lorenzo Bianconi
2021-04-08 18:06 ` kernel test robot [this message]
2021-04-08 12:50 ` [PATCH v8 bpf-next 03/14] net: mvneta: update mb bit before passing the xdp buffer to eBPF layer Lorenzo Bianconi
2021-04-08 18:19 ` Vladimir Oltean
2021-04-09 16:24 ` Lorenzo Bianconi
2021-04-08 12:50 ` [PATCH v8 bpf-next 04/14] xdp: add multi-buff support to xdp_return_{buff/frame} Lorenzo Bianconi
2021-04-08 18:30 ` Vladimir Oltean
2021-04-09 16:28 ` Lorenzo Bianconi
2021-04-08 12:50 ` [PATCH v8 bpf-next 05/14] net: mvneta: add multi buffer support to XDP_TX Lorenzo Bianconi
2021-04-08 18:40 ` Vladimir Oltean
2021-04-09 16:36 ` Lorenzo Bianconi
2021-04-08 12:50 ` [PATCH v8 bpf-next 06/14] net: mvneta: enable jumbo frames for XDP Lorenzo Bianconi
2021-04-08 12:50 ` [PATCH v8 bpf-next 07/14] net: xdp: add multi-buff support to xdp_build_skb_from_fram Lorenzo Bianconi
2021-04-08 12:51 ` [PATCH v8 bpf-next 08/14] bpf: add multi-buff support to the bpf_xdp_adjust_tail() API Lorenzo Bianconi
2021-04-08 19:15 ` Vladimir Oltean
2021-04-08 20:54 ` Vladimir Oltean
2021-04-09 18:13 ` Lorenzo Bianconi
2021-04-08 12:51 ` [PATCH v8 bpf-next 09/14] bpd: add multi-buffer support to xdp copy helpers Lorenzo Bianconi
2021-04-08 20:57 ` Vladimir Oltean
2021-04-09 18:19 ` Lorenzo Bianconi
2021-04-08 21:04 ` Vladimir Oltean
2021-04-14 8:08 ` Eelco Chaudron
2021-04-08 12:51 ` [PATCH v8 bpf-next 10/14] bpf: add new frame_length field to the XDP ctx Lorenzo Bianconi
2021-04-08 12:51 ` [PATCH v8 bpf-next 11/14] bpf: move user_size out of bpf_test_init Lorenzo Bianconi
2021-04-08 12:51 ` [PATCH v8 bpf-next 12/14] bpf: introduce multibuff support to bpf_prog_test_run_xdp() Lorenzo Bianconi
2021-04-08 12:51 ` [PATCH v8 bpf-next 13/14] bpf: test_run: add xdp_shared_info pointer in bpf_test_finish signature Lorenzo Bianconi
2021-04-08 12:51 ` [PATCH v8 bpf-next 14/14] bpf: update xdp_adjust_tail selftest to include multi-buffer Lorenzo Bianconi
2021-04-09 0:56 ` [PATCH v8 bpf-next 00/14] mvneta: introduce XDP multi-buffer support John Fastabend
2021-04-09 20:16 ` Lorenzo Bianconi
2021-04-13 15:16 ` Eelco Chaudron
2021-04-16 14:27 ` Magnus Karlsson
2021-04-16 21:29 ` Lorenzo Bianconi
2021-04-16 23:00 ` Daniel Borkmann
2021-04-18 16:18 ` Jesper Dangaard Brouer
2021-04-19 6:20 ` Magnus Karlsson
2021-04-19 6:55 ` Lorenzo Bianconi
2021-04-20 13:49 ` Magnus Karlsson
2021-04-21 12:47 ` Jesper Dangaard Brouer
2021-04-21 14:12 ` Magnus Karlsson
2021-04-21 15:39 ` Jesper Dangaard Brouer
2021-04-22 10:24 ` Magnus Karlsson
2021-04-22 14:42 ` Jesper Dangaard Brouer
2021-04-22 15:05 ` Crash for i40e on net-next (was: [PATCH v8 bpf-next 00/14] mvneta: introduce XDP multi-buffer support) Jesper Dangaard Brouer
2021-04-23 5:28 ` Magnus Karlsson
2021-04-23 16:43 ` Alexander Duyck
2021-04-25 9:45 ` Magnus Karlsson
2021-04-27 18:28 ` [PATCH v8 bpf-next 00/14] mvneta: introduce XDP multi-buffer support Lorenzo Bianconi
2021-04-28 7:41 ` Magnus Karlsson
2021-04-29 12:49 ` Jesper Dangaard Brouer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202104090119.efykjNCl-lkp@intel.com \
--to=lkp@intel.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=john.fastabend@gmail.com \
--cc=kbuild-all@lists.01.org \
--cc=kuba@kernel.org \
--cc=lorenzo.bianconi@redhat.com \
--cc=lorenzo@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=sameehj@amazon.com \
--cc=shayagr@amazon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).