Return true immediately when the last segment is processed, without waiting for the next segment. Signed-off-by: Pengtao He --- net/core/skbuff.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/core/skbuff.c b/net/core/skbuff.c index ee0274417948..cc3339ab829a 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -3114,6 +3114,9 @@ static bool __splice_segment(struct page *page, unsigned int poff, *len -= flen; } while (*len && plen); + if (!*len) + return true; + return false; } -- 2.49.0