From: Coly Li <colyli@xxxxxxx> Date: Thu, 1 Oct 2020 15:54:01 +0800 > This series was original by a bug fix in nvme-over-tcp driver which only > checked whether a page was allocated from slab allcoator, but forgot to > check its page_count: The page handled by sendpage should be neither a > Slab page nor 0 page_count page. > > As Sagi Grimberg suggested, the original fix is refind to a more common > inline routine: > static inline bool sendpage_ok(struct page *page) > { > return (!PageSlab(page) && page_count(page) >= 1); > } > If sendpage_ok() returns true, the checking page can be handled by the > concrete zero-copy sendpage method in network layer. > > The v9 series has 7 patches, no change from v8 series, > - The 1st patch in this series introduces sendpage_ok() in header file > include/linux/net.h. > - The 2nd patch adds WARN_ONCE() for improper zero-copy send in > kernel_sendpage(). > - The 3rd patch fixes the page checking issue in nvme-over-tcp driver. > - The 4th patch adds page_count check by using sendpage_ok() in > do_tcp_sendpages() as Eric Dumazet suggested. > - The 5th and 6th patches just replace existing open coded checks with ... Series applied and queued up for -stable, thank you.