Message ID | 20210610082209.91487-6-xuanzhuo@linux.alibaba.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | virtio-net: support xdp socket zero copy | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | success | CCed 13 of 13 maintainers |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | fail | Errors and warnings before: 16 this patch: 18 |
netdev/kdoc | fail | Errors and warnings before: 4 this patch: 6 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 63 lines checked |
netdev/build_allmodconfig_warn | fail | Errors and warnings before: 16 this patch: 18 |
netdev/header_inline | success | Link |
Hi Xuan,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
url: https://github.com/0day-ci/linux/commits/Xuan-Zhuo/virtio-net-support-xdp-socket-zero-copy/20210617-033438
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git c7654495916e109f76a67fd3ae68f8fa70ab4faa
config: parisc-randconfig-r023-20210617 (attached as .config)
compiler: hppa-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/6155fdb771fa9f6c96472440c6b846dbfc4aebde
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Xuan-Zhuo/virtio-net-support-xdp-socket-zero-copy/20210617-033438
git checkout 6155fdb771fa9f6c96472440c6b846dbfc4aebde
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=parisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/virtio/virtio_ring.c:1898: warning: expecting prototype for virtqueue_get_buf(). Prototype was for virtqueue_get_buf_ctx() instead
drivers/virtio/virtio_ring.c:2024: warning: Function parameter or member 'ctx' not described in 'virtqueue_detach_unused_buf_ctx'
>> drivers/virtio/virtio_ring.c:2024: warning: expecting prototype for virtqueue_detach_unused_buf(). Prototype was for virtqueue_detach_unused_buf_ctx() instead
vim +2024 drivers/virtio/virtio_ring.c
e6f633e5beab65 Tiwei Bie 2018-11-21 2014
138fd25148638a Tiwei Bie 2018-11-21 2015 /**
138fd25148638a Tiwei Bie 2018-11-21 2016 * virtqueue_detach_unused_buf - detach first unused buffer
a5581206c565a7 Jiang Biao 2019-04-23 2017 * @_vq: the struct virtqueue we're talking about.
138fd25148638a Tiwei Bie 2018-11-21 2018 *
138fd25148638a Tiwei Bie 2018-11-21 2019 * Returns NULL or the "data" token handed to virtqueue_add_*().
138fd25148638a Tiwei Bie 2018-11-21 2020 * This is not valid on an active queue; it is useful only for device
138fd25148638a Tiwei Bie 2018-11-21 2021 * shutdown.
138fd25148638a Tiwei Bie 2018-11-21 2022 */
6155fdb771fa9f Xuan Zhuo 2021-06-10 2023 void *virtqueue_detach_unused_buf_ctx(struct virtqueue *_vq, void **ctx)
138fd25148638a Tiwei Bie 2018-11-21 @2024 {
1ce9e6055fa0a9 Tiwei Bie 2018-11-21 2025 struct vring_virtqueue *vq = to_vvq(_vq);
1ce9e6055fa0a9 Tiwei Bie 2018-11-21 2026
6155fdb771fa9f Xuan Zhuo 2021-06-10 2027 return vq->packed_ring ?
6155fdb771fa9f Xuan Zhuo 2021-06-10 2028 virtqueue_detach_unused_buf_ctx_packed(_vq, ctx) :
6155fdb771fa9f Xuan Zhuo 2021-06-10 2029 virtqueue_detach_unused_buf_ctx_split(_vq, ctx);
6155fdb771fa9f Xuan Zhuo 2021-06-10 2030 }
6155fdb771fa9f Xuan Zhuo 2021-06-10 2031
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index 71e16b53e9c1..a3d7ec1c9ea7 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -815,7 +815,8 @@ static bool virtqueue_enable_cb_delayed_split(struct virtqueue *_vq) return true; } -static void *virtqueue_detach_unused_buf_split(struct virtqueue *_vq) +static void *virtqueue_detach_unused_buf_ctx_split(struct virtqueue *_vq, + void **ctx) { struct vring_virtqueue *vq = to_vvq(_vq); unsigned int i; @@ -828,7 +829,7 @@ static void *virtqueue_detach_unused_buf_split(struct virtqueue *_vq) continue; /* detach_buf_split clears data, so grab it now. */ buf = vq->split.desc_state[i].data; - detach_buf_split(vq, i, NULL); + detach_buf_split(vq, i, ctx); vq->split.avail_idx_shadow--; vq->split.vring.avail->idx = cpu_to_virtio16(_vq->vdev, vq->split.avail_idx_shadow); @@ -1526,7 +1527,8 @@ static bool virtqueue_enable_cb_delayed_packed(struct virtqueue *_vq) return true; } -static void *virtqueue_detach_unused_buf_packed(struct virtqueue *_vq) +static void *virtqueue_detach_unused_buf_ctx_packed(struct virtqueue *_vq, + void **ctx) { struct vring_virtqueue *vq = to_vvq(_vq); unsigned int i; @@ -1539,7 +1541,7 @@ static void *virtqueue_detach_unused_buf_packed(struct virtqueue *_vq) continue; /* detach_buf clears data, so grab it now. */ buf = vq->packed.desc_state[i].data; - detach_buf_packed(vq, i, NULL); + detach_buf_packed(vq, i, ctx); END_USE(vq); return buf; } @@ -2018,12 +2020,18 @@ EXPORT_SYMBOL_GPL(virtqueue_enable_cb_delayed); * This is not valid on an active queue; it is useful only for device * shutdown. */ -void *virtqueue_detach_unused_buf(struct virtqueue *_vq) +void *virtqueue_detach_unused_buf_ctx(struct virtqueue *_vq, void **ctx) { struct vring_virtqueue *vq = to_vvq(_vq); - return vq->packed_ring ? virtqueue_detach_unused_buf_packed(_vq) : - virtqueue_detach_unused_buf_split(_vq); + return vq->packed_ring ? + virtqueue_detach_unused_buf_ctx_packed(_vq, ctx) : + virtqueue_detach_unused_buf_ctx_split(_vq, ctx); +} + +void *virtqueue_detach_unused_buf(struct virtqueue *_vq) +{ + return virtqueue_detach_unused_buf_ctx(_vq, NULL); } EXPORT_SYMBOL_GPL(virtqueue_detach_unused_buf); diff --git a/include/linux/virtio.h b/include/linux/virtio.h index b1894e0323fa..8aada4d29e04 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h @@ -78,6 +78,8 @@ bool virtqueue_poll(struct virtqueue *vq, unsigned); bool virtqueue_enable_cb_delayed(struct virtqueue *vq); +void *virtqueue_detach_unused_buf_ctx(struct virtqueue *vq, void **ctx); + void *virtqueue_detach_unused_buf(struct virtqueue *vq); unsigned int virtqueue_get_vring_size(struct virtqueue *vq);
Supports returning ctx while recycling unused buf, which helps to release buf in different ways for different bufs. Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> --- drivers/virtio/virtio_ring.c | 22 +++++++++++++++------- include/linux/virtio.h | 2 ++ 2 files changed, 17 insertions(+), 7 deletions(-)