Message ID | 20200925150119.112016-8-colyli@suse.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Introduce sendpage_ok() to detect misused sendpage in network related drivers | expand |
On Fri, 2020-09-25 at 23:01 +0800, Coly Li wrote: > In libceph, ceph_tcp_sendpage() does the following checks before handle > the page by network layer's zero copy sendpage method, > if (page_count(page) >= 1 && !PageSlab(page)) > > This check is exactly what sendpage_ok() does. This patch replace the > open coded checks by sendpage_ok() as a code cleanup. > > Signed-off-by: Coly Li <colyli@suse.de> > Cc: Ilya Dryomov <idryomov@gmail.com> > Cc: Jeff Layton <jlayton@kernel.org> > --- > net/ceph/messenger.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c > index bdfd66ba3843..d4d7a0e52491 100644 > --- a/net/ceph/messenger.c > +++ b/net/ceph/messenger.c > @@ -575,7 +575,7 @@ static int ceph_tcp_sendpage(struct socket *sock, struct page *page, > * coalescing neighboring slab objects into a single frag which > * triggers one of hardened usercopy checks. > */ > - if (page_count(page) >= 1 && !PageSlab(page)) > + if (sendpage_ok(page)) > sendpage = sock->ops->sendpage; > else > sendpage = sock_no_sendpage; Looks like a reasonable change to make. Assuming that there is no objection to the new helper: Acked-by: Jeff Layton <jlayton@kernel.org>
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index bdfd66ba3843..d4d7a0e52491 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c @@ -575,7 +575,7 @@ static int ceph_tcp_sendpage(struct socket *sock, struct page *page, * coalescing neighboring slab objects into a single frag which * triggers one of hardened usercopy checks. */ - if (page_count(page) >= 1 && !PageSlab(page)) + if (sendpage_ok(page)) sendpage = sock->ops->sendpage; else sendpage = sock_no_sendpage;
In libceph, ceph_tcp_sendpage() does the following checks before handle the page by network layer's zero copy sendpage method, if (page_count(page) >= 1 && !PageSlab(page)) This check is exactly what sendpage_ok() does. This patch replace the open coded checks by sendpage_ok() as a code cleanup. Signed-off-by: Coly Li <colyli@suse.de> Cc: Ilya Dryomov <idryomov@gmail.com> Cc: Jeff Layton <jlayton@kernel.org> --- net/ceph/messenger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)