All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC
@ 2024-03-12 23:37 David Howells
  2024-03-12 23:37 ` [PATCH net-next 1/2] rxrpc: Fix use of changed alignment param to page_frag_alloc_align() David Howells
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: David Howells @ 2024-03-12 23:37 UTC (permalink / raw)
  To: netdev
  Cc: David Howells, Marc Dionne, Yunsheng Lin, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, linux-afs,
	linux-kernel

Here are a couple of fixes for the AF_RXRPC changes[1] in net-next.

 (1) Fix a runtime warning introduced by a patch that changed how
     page_frag_alloc_align() works.

 (2) Fix an is-NULL vs IS_ERR error handling bug.

The patches are tagged here:

	git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git tags/rxrpc-iothread-20240312

And can be found on this branch:

	http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-iothread

David

Link: https://lore.kernel.org/r/20240306000655.1100294-1-dhowells@redhat.com/ [1]

David Howells (2):
  rxrpc: Fix use of changed alignment param to page_frag_alloc_align()
  rxrpc: Fix error check on ->alloc_txbuf()

 net/rxrpc/sendmsg.c | 4 ++--
 net/rxrpc/txbuf.c   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH net-next 1/2] rxrpc: Fix use of changed alignment param to page_frag_alloc_align()
  2024-03-12 23:37 [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC David Howells
@ 2024-03-12 23:37 ` David Howells
  2024-03-12 23:37 ` [PATCH net-next 2/2] rxrpc: Fix error check on ->alloc_txbuf() David Howells
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: David Howells @ 2024-03-12 23:37 UTC (permalink / raw)
  To: netdev
  Cc: David Howells, Marc Dionne, Yunsheng Lin, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, linux-afs,
	linux-kernel, Alexander Duyck, Michael S . Tsirkin

Commit 411c5f36805c ("mm/page_alloc: modify page_frag_alloc_align() to
accept align as an argument") changed the way page_frag_alloc_align()
worked, but it didn't fix AF_RXRPC as that use of that allocator function
hadn't been merged yet at the time.  Now, when the AFS filesystem is used,
this results in:

  WARNING: CPU: 4 PID: 379 at include/linux/gfp.h:323 rxrpc_alloc_data_txbuf+0x9d/0x2b0 [rxrpc]

Fix this by using __page_frag_alloc_align() instead.

Note that it might be better to use an order-based alignment rather than a
mask-based alignment.

Fixes: 49489bb03a50 ("rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags")
Signed-off-by: David Howells <dhowells@redhat.com>
Reported-by: Marc Dionne <marc.dionne@auristor.com>
cc: Yunsheng Lin <linyunsheng@huawei.com>
cc: Alexander Duyck <alexander.duyck@gmail.com>
cc: Michael S. Tsirkin <mst@redhat.com>
cc: "David S. Miller" <davem@davemloft.net>
cc: Eric Dumazet <edumazet@google.com>
cc: Jakub Kicinski <kuba@kernel.org>
cc: Paolo Abeni <pabeni@redhat.com>
cc: linux-afs@lists.infradead.org
cc: netdev@vger.kernel.org
---
 net/rxrpc/txbuf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/rxrpc/txbuf.c b/net/rxrpc/txbuf.c
index b2a82ab756c2..e0679658d9de 100644
--- a/net/rxrpc/txbuf.c
+++ b/net/rxrpc/txbuf.c
@@ -33,8 +33,8 @@ struct rxrpc_txbuf *rxrpc_alloc_data_txbuf(struct rxrpc_call *call, size_t data_
 	total = hoff + sizeof(*whdr) + data_size;
 
 	mutex_lock(&call->conn->tx_data_alloc_lock);
-	buf = page_frag_alloc_align(&call->conn->tx_data_alloc, total, gfp,
-				    ~(data_align - 1) & ~(L1_CACHE_BYTES - 1));
+	buf = __page_frag_alloc_align(&call->conn->tx_data_alloc, total, gfp,
+				      ~(data_align - 1) & ~(L1_CACHE_BYTES - 1));
 	mutex_unlock(&call->conn->tx_data_alloc_lock);
 	if (!buf) {
 		kfree(txb);


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net-next 2/2] rxrpc: Fix error check on ->alloc_txbuf()
  2024-03-12 23:37 [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC David Howells
  2024-03-12 23:37 ` [PATCH net-next 1/2] rxrpc: Fix use of changed alignment param to page_frag_alloc_align() David Howells
@ 2024-03-12 23:37 ` David Howells
  2024-03-13  8:17 ` [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC David Howells
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: David Howells @ 2024-03-12 23:37 UTC (permalink / raw)
  To: netdev
  Cc: David Howells, Marc Dionne, Yunsheng Lin, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, linux-afs,
	linux-kernel

rxrpc_alloc_*_txbuf() and ->alloc_txbuf() return NULL to indicate no
memory, but rxrpc_send_data() uses IS_ERR().

Fix rxrpc_send_data() to check for NULL only and set -ENOMEM if it sees
that.

Fixes: 49489bb03a50 ("rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags")
Signed-off-by: David Howells <dhowells@redhat.com>
Reported-by: Marc Dionne <marc.dionne@auristor.com>
cc: "David S. Miller" <davem@davemloft.net>
cc: Eric Dumazet <edumazet@google.com>
cc: Jakub Kicinski <kuba@kernel.org>
cc: Paolo Abeni <pabeni@redhat.com>
cc: linux-afs@lists.infradead.org
cc: netdev@vger.kernel.org
---
 net/rxrpc/sendmsg.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/rxrpc/sendmsg.c b/net/rxrpc/sendmsg.c
index 6f765768c49c..894b8fa68e5e 100644
--- a/net/rxrpc/sendmsg.c
+++ b/net/rxrpc/sendmsg.c
@@ -349,8 +349,8 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,
 			 */
 			remain = more ? INT_MAX : msg_data_left(msg);
 			txb = call->conn->security->alloc_txbuf(call, remain, sk->sk_allocation);
-			if (IS_ERR(txb)) {
-				ret = PTR_ERR(txb);
+			if (!txb) {
+				ret = -ENOMEM;
 				goto maybe_error;
 			}
 		}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC
  2024-03-12 23:37 [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC David Howells
  2024-03-12 23:37 ` [PATCH net-next 1/2] rxrpc: Fix use of changed alignment param to page_frag_alloc_align() David Howells
  2024-03-12 23:37 ` [PATCH net-next 2/2] rxrpc: Fix error check on ->alloc_txbuf() David Howells
@ 2024-03-13  8:17 ` David Howells
  2024-03-13 11:14 ` [PATCH net-next 1/2] rxrpc: Fix use of changed alignment param to page_frag_alloc_align() David Howells
  2024-03-14 12:20 ` [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: David Howells @ 2024-03-13  8:17 UTC (permalink / raw)
  To: netdev
  Cc: dhowells, Marc Dionne, Yunsheng Lin, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, linux-afs,
	linux-kernel

David Howells <dhowells@redhat.com> wrote:

> Here are a couple of fixes for the AF_RXRPC changes[1] in net-next.

Actually, this should be aimed at net now that net-next got merged.

David


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 1/2] rxrpc: Fix use of changed alignment param to page_frag_alloc_align()
  2024-03-12 23:37 [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC David Howells
                   ` (2 preceding siblings ...)
  2024-03-13  8:17 ` [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC David Howells
@ 2024-03-13 11:14 ` David Howells
  2024-03-14 12:20 ` [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: David Howells @ 2024-03-13 11:14 UTC (permalink / raw)
  To: netdev
  Cc: dhowells, Marc Dionne, Yunsheng Lin, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, linux-afs,
	linux-kernel, Alexander Duyck, Michael S . Tsirkin

Reported-and-tested-by: syzbot+150fa730f40bce72aa05@syzkaller.appspotmail.com


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC
  2024-03-12 23:37 [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC David Howells
                   ` (3 preceding siblings ...)
  2024-03-13 11:14 ` [PATCH net-next 1/2] rxrpc: Fix use of changed alignment param to page_frag_alloc_align() David Howells
@ 2024-03-14 12:20 ` patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-03-14 12:20 UTC (permalink / raw)
  To: David Howells
  Cc: netdev, marc.dionne, linyunsheng, davem, edumazet, kuba, pabeni,
	linux-afs, linux-kernel

Hello:

This series was applied to netdev/net.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Tue, 12 Mar 2024 23:37:16 +0000 you wrote:
> Here are a couple of fixes for the AF_RXRPC changes[1] in net-next.
> 
>  (1) Fix a runtime warning introduced by a patch that changed how
>      page_frag_alloc_align() works.
> 
>  (2) Fix an is-NULL vs IS_ERR error handling bug.
> 
> [...]

Here is the summary with links:
  - [net-next,1/2] rxrpc: Fix use of changed alignment param to page_frag_alloc_align()
    https://git.kernel.org/netdev/net/c/6b2536462fd4
  - [net-next,2/2] rxrpc: Fix error check on ->alloc_txbuf()
    https://git.kernel.org/netdev/net/c/89e4354110ca

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-03-14 12:20 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-12 23:37 [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC David Howells
2024-03-12 23:37 ` [PATCH net-next 1/2] rxrpc: Fix use of changed alignment param to page_frag_alloc_align() David Howells
2024-03-12 23:37 ` [PATCH net-next 2/2] rxrpc: Fix error check on ->alloc_txbuf() David Howells
2024-03-13  8:17 ` [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC David Howells
2024-03-13 11:14 ` [PATCH net-next 1/2] rxrpc: Fix use of changed alignment param to page_frag_alloc_align() David Howells
2024-03-14 12:20 ` [PATCH net-next 0/2] rxrpc: Fixes for AF_RXRPC patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.