On Tue, Jul 23, 2019 at 11:14:13AM -0700, Matthew Wilcox wrote: > On Tue, Jul 23, 2019 at 10:58:38AM -0700, Ira Weiny wrote: > > > @@ -1092,7 +1092,7 @@ int chtls_sendmsg(struct sock *sk, struct msghdr *msg, size_t size) > > > if (page && off == pg_size) { > > > put_page(page); > > > TCP_PAGE(sk) = page = NULL; > > > - pg_size = PAGE_SIZE; > > > + pg_size = 0; > > > > Yea... I was not sure about this one at first... :-/ > > I'm not sure we actually need to change pg_size here, but it seemed > appropriate to set it back to 0. > > > > __GFP_NORETRY, > > > order); > > > - if (page) > > > - pg_size <<= order; > > > } > > > if (!page) { > > > page = alloc_page(gfp); > > > - pg_size = PAGE_SIZE; > > > } > > > if (!page) > > > goto wait_for_memory; > > > > Side note: why 2 checks for !page? > > Because page is assigned to after the first check ... Ah yea duh! Sorry it is a bit hard to follow. Ira