Message ID | 1607071819-34127-1-git-send-email-zhangchangzhong@huawei.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | BPF |
Headers | show |
Series | [net] xsk: Fix error return code in __xp_assign_dev() | 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 |
netdev/subject_prefix | success | Link |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 1 this patch: 1 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 7 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 1 this patch: 1 |
netdev/header_inline | success | Link |
netdev/stable | success | Stable not CCed |
On Fri, Dec 4, 2020 at 9:49 AM Zhang Changzhong <zhangchangzhong@huawei.com> wrote: > > Fix to return a negative error code from the error handling > case instead of 0, as done elsewhere in this function. > > Fixes: 921b68692abb ("xsk: Enable sharing of dma mappings") > Reported-by: Hulk Robot <hulkci@huawei.com> > Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com> > --- > net/xdp/xsk_buff_pool.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c > index 9287edd..d5adeee 100644 > --- a/net/xdp/xsk_buff_pool.c > +++ b/net/xdp/xsk_buff_pool.c > @@ -175,6 +175,7 @@ static int __xp_assign_dev(struct xsk_buff_pool *pool, > > if (!pool->dma_pages) { > WARN(1, "Driver did not DMA map zero-copy buffers"); > + err = -EINVAL; Good catch! My intention here by not setting err is that it should fall back to copy mode, which it does. The problem is that the force_zc flag is disregarded when err is not set (see exit code below) and your patch fixes that. If force_zc is set, we should exit out with an error, not fall back. Could you please write about this in your cover letter and send a v2? BTW, what is the "Hulk Robot" that is in your Reported-by tag? Thank you: Magnus err_unreg_xsk: xp_disable_drv_zc(pool); err_unreg_pool: if (!force_zc) err = 0; /* fallback to copy mode */ if (err) xsk_clear_pool_at_qid(netdev, queue_id); return err; > goto err_unreg_xsk; > } > pool->umem->zc = true; > -- > 2.9.5 >
> > Good catch! My intention here by not setting err is that it should > fall back to copy mode, which it does. The problem is that the > force_zc flag is disregarded when err is not set (see exit code below) > and your patch fixes that. If force_zc is set, we should exit out with > an error, not fall back. Could you please write about this in your > cover letter and send a v2? > Thanks for the suggestion, I have sent the v2 patch, please take another look. > BTW, what is the "Hulk Robot" that is in your Reported-by tag? It's an auto tester, here is some information: https://lwn.net/Articles/804119/ > > Thank you: Magnus > > err_unreg_xsk: > xp_disable_drv_zc(pool); > err_unreg_pool: > if (!force_zc) > err = 0; /* fallback to copy mode */ > if (err) > xsk_clear_pool_at_qid(netdev, queue_id); > return err; > >> goto err_unreg_xsk; >> } >> pool->umem->zc = true; >> -- >> 2.9.5 >> > . >
diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c index 9287edd..d5adeee 100644 --- a/net/xdp/xsk_buff_pool.c +++ b/net/xdp/xsk_buff_pool.c @@ -175,6 +175,7 @@ static int __xp_assign_dev(struct xsk_buff_pool *pool, if (!pool->dma_pages) { WARN(1, "Driver did not DMA map zero-copy buffers"); + err = -EINVAL; goto err_unreg_xsk; } pool->umem->zc = true;
Fix to return a negative error code from the error handling case instead of 0, as done elsewhere in this function. Fixes: 921b68692abb ("xsk: Enable sharing of dma mappings") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com> --- net/xdp/xsk_buff_pool.c | 1 + 1 file changed, 1 insertion(+)