From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CEED4436; Tue, 12 Dec 2023 03:01:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lyA2Wa1t" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2FE0EC433C8; Tue, 12 Dec 2023 03:01:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1702350077; bh=A2w+VyEa7EufnRdgHvOJ8URmwSWfL2S7heSgfha9Q74=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=lyA2Wa1tdZBjqIthf5et8euY6lk8umO1H9/JobO1+OkayZhlX/dmPOy50Oko2pQTO 8JJMZWeY0VYnZ5aiRVfSlstBbxPj5JA/no2eREU61t3C/mIwgOnZ004xs8cTrH2f+4 noHwnfKh1QdVU9wP39uDPHmqjN6PFybl1Vkw+KAv9jxHg671cm+EbOntFj+kgyl4YW sJ8D2kF8tcSGSrILwTbwzRRUgJB3AmsNxwWspIUCiLcS6GSiHW8G33ECNVhHvSP2qs qsCI/mAmsa78fmGcWTw1wRN0kmp2ZQmIp1v0RWV80d7YvJq2v6UX67h2ljm4yXOdWd u3PeWxtdRF+1g== Date: Mon, 11 Dec 2023 19:01:16 -0800 From: Jakub Kicinski To: duanqiangwen Cc: netdev@vger.kernel.org, jiawenwu@trustnetic.com, mengyuanlou@net-swift.com, davem@davemloft.net, pabeni@redhat.com, yang.lee@linux.alibaba.com, shaozhengchao@huawei.com, error27@gmail.com, andrew@lunn.ch, stable@vger.kernel.org Subject: Re: [PATCH net v2] net: libwx: fix memory leak on free page Message-ID: <20231211190116.5415a79a@kernel.org> In-Reply-To: <20231208080216.20176-1-duanqiangwen@net-swift.com> References: <20231208080216.20176-1-duanqiangwen@net-swift.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Fri, 8 Dec 2023 16:02:16 +0800 duanqiangwen wrote: > ifconfig ethx up, will set page->refcount larger than 1, > and then ifconfig ethx down, calling __page_frag_cache_drain() > to free pages, it is not compatible with page pool. > So deleting codes which changing page->refcount. > > Fixes: 3c47e8ae113a ("net: libwx: Support to receive packets in NAPI") > > Signed-off-by: duanqiangwen nit: no empty line between Fixes and Signed-off-by, please fix and repost > @@ -335,11 +269,12 @@ static struct sk_buff *wx_build_skb(struct wx_ring *rx_ring, > if (size <= WX_RXBUFFER_256) { > memcpy(__skb_put(skb, size), page_addr, > ALIGN(size, sizeof(long))); > - rx_buffer->pagecnt_bias++; > - > + page_pool_put_full_page(rx_ring->page_pool, rx_buffer->page, false); FWIW I'm 90% sure you can pass true as the last argument here. The rule for "allow direct recycling" is basically - are you in the same context the context which will allocate from this page pool. -- pw-bot: cr