summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2022-05-26 10:23:13 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-06-09 10:21:29 +0200
commit70124d94f4c9164207ab009ac780d4d869ead8aa (patch)
treef8aee90885a8fb3c37e1a99b66c47c3346496051
parent2156dc390402043ba5982489c6625adcb0b0975c (diff)
downloadlinux-70124d94f4c9164207ab009ac780d4d869ead8aa.tar.gz
linux-70124d94f4c9164207ab009ac780d4d869ead8aa.tar.bz2
linux-70124d94f4c9164207ab009ac780d4d869ead8aa.zip
net: ipa: fix page free in ipa_endpoint_trans_release()
commit 155c0c90bca918de6e4327275dfc1d97fd604115 upstream. Currently the (possibly compound) page used for receive buffers are freed using __free_pages(). But according to this comment above the definition of that function, that's wrong: If you want to use the page's reference count to decide when to free the allocation, you should allocate a compound page, and use put_page() instead of __free_pages(). Convert the call to __free_pages() in ipa_endpoint_trans_release() to use put_page() instead. Fixes: ed23f02680caa ("net: ipa: define per-endpoint receive buffer size") Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/net/ipa/ipa_endpoint.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c
index eb25a13042ea..decee3dbe394 100644
--- a/drivers/net/ipa/ipa_endpoint.c
+++ b/drivers/net/ipa/ipa_endpoint.c
@@ -1179,7 +1179,7 @@ void ipa_endpoint_trans_release(struct ipa_endpoint *endpoint,
struct page *page = trans->data;
if (page)
- __free_pages(page, get_order(IPA_RX_BUFFER_SIZE));
+ put_page(page);
}
}