mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
net: netdevsim: fix nsim_pp_hold_write()
nsim_pp_hold_write() has two problems:
1) It may return with rtnl held, as found by syzbot.
2) Its return value does not propagate an error if any.
Fixes: 1580cbcbfe
("net: netdevsim: add some fake page pool use")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20241216083703.1859921-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
7ed2d91588
commit
b9b8301d36
@ -635,10 +635,10 @@ nsim_pp_hold_write(struct file *file, const char __user *data,
|
|||||||
page_pool_put_full_page(ns->page->pp, ns->page, false);
|
page_pool_put_full_page(ns->page->pp, ns->page, false);
|
||||||
ns->page = NULL;
|
ns->page = NULL;
|
||||||
}
|
}
|
||||||
rtnl_unlock();
|
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
return count;
|
rtnl_unlock();
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct file_operations nsim_pp_hold_fops = {
|
static const struct file_operations nsim_pp_hold_fops = {
|
||||||
|
Loading…
Reference in New Issue
Block a user