Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp4150522pxb; Mon, 27 Sep 2021 10:24:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzfih7muzBAyX5beOxKXQV9Y1B8d51o7hcNcUs7c0diwo2SWU8zA3IkfLI027FhZYCKNCcX X-Received: by 2002:aa7:96e1:0:b0:44b:7b1e:1cbf with SMTP id i1-20020aa796e1000000b0044b7b1e1cbfmr813972pfq.29.1632763496552; Mon, 27 Sep 2021 10:24:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632763496; cv=none; d=google.com; s=arc-20160816; b=DA2WpeUp1WtRHG04kJQphWqUpX2iBTWNTVN4TD+xyRvbxXFhSJ/vf2U2OzRBq1g+30 A4JWo/WjseD+izZICkPMo/hRZS62zhCrU5lXbz8qywd1bdLEYHPsZsz52u4kgu8FBFTQ sfqaOYruFhPhfPQ16Mi+kiFDSAqi/lL37eLNgKv+/BLGULYhrVmAMMy3A/kdvHBQZx6i 5P5SzxErpzOQzmsf/YtMqXyfgvk3JracbU64JVxtn4XWvqovg708RjWknhcEE5nq7+9g AojisHcZDR4txWuRWRPYBnyoCSMJ44yxMeg1TgqO+PI/rON39Co/nnyThL8fHB0Zwsx+ YApg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=tajTg+tYTs41GJuHevrBhi6OEphCB2uMjUYlDIGLYow=; b=awLYmBUhXilcFgN735QD0G3xZFFz4IfoGaNvPHRRPqZjR6iN118gIKjLOh2nNOzUXH DmAuqEjUo6kH2hj6cOpl5fs6/1hmW4ZUTArz/v/SMA2uYz894rQCDmZwO/FQYUbiVaAu qNEHtdAfw+Lvm7sa4EI4uGycDq+hbeQ330SPhGccTmA1RrVPWl7QNRJfkM2gsUal1K1E ScHw3VF5A5Nxqv72tsPtZkDwVyWn3SKrs1jACrl5Tn3s93thja+ISfsVb4c6wDAc/Kv1 iM19Mjx6XF6kV88kHSReSxm/iSQOBNhOjbHnpMFC0NeMukKM80qVlRxLumsdYq/HIhMV 4uxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=qq+9wls6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c16si20999725pfp.292.2021.09.27.10.24.43; Mon, 27 Sep 2021 10:24:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=qq+9wls6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236750AbhI0RY1 (ORCPT + 99 others); Mon, 27 Sep 2021 13:24:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:36614 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235925AbhI0RVM (ORCPT ); Mon, 27 Sep 2021 13:21:12 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A5B8361355; Mon, 27 Sep 2021 17:13:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1632762817; bh=HumXbEoNAHL7SJ7zWMzLlvnNalPCWSrRbVhMYK+ggOc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qq+9wls67y2+no61t4K0xKsNNQOtCOpnaaGkbS3W+ydKS1BTHy4LNOcRgix0zuWZi 7RQMxHfHzMkrVQ9NEtVXcwqctl0oO8B7q8VvOnuuv7EwTUsWPLNBIvc/eYNN4k0caL 53pyHs+uH56zYgdwCIz64L60UCG/PeVAurCPmFHs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Xuan Zhuo , Jason Wang , "David S. Miller" , Sasha Levin Subject: [PATCH 5.14 055/162] virtio-net: fix pages leaking when building skb in big mode Date: Mon, 27 Sep 2021 19:01:41 +0200 Message-Id: <20210927170235.395318090@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210927170233.453060397@linuxfoundation.org> References: <20210927170233.453060397@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jason Wang [ Upstream commit afd92d82c9d715fb97565408755acad81573591a ] We try to use build_skb() if we had sufficient tailroom. But we forget to release the unused pages chained via private in big mode which will leak pages. Fixing this by release the pages after building the skb in big mode. Cc: Xuan Zhuo Fixes: fb32856b16ad ("virtio-net: page_to_skb() use build_skb when there's sufficient tailroom") Signed-off-by: Jason Wang Reviewed-by: Xuan Zhuo Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/virtio_net.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index eee493685aad..fb96658bb91f 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -435,6 +435,10 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi, skb_reserve(skb, p - buf); skb_put(skb, len); + + page = (struct page *)page->private; + if (page) + give_pages(rq, page); goto ok; } -- 2.33.0