Patch "rxrpc: Fix skbuff cleanup of call's recvmsg_queue and rx_oos_queue" has been added to the 6.7-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    rxrpc: Fix skbuff cleanup of call's recvmsg_queue and rx_oos_queue

to the 6.7-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     rxrpc-fix-skbuff-cleanup-of-call-s-recvmsg_queue-and.patch
and it can be found in the queue-6.7 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 46738bd1126a39b1813a340703f7bdee0455df4e
Author: David Howells <dhowells@xxxxxxxxxx>
Date:   Fri Jan 5 17:05:41 2024 +0000

    rxrpc: Fix skbuff cleanup of call's recvmsg_queue and rx_oos_queue
    
    [ Upstream commit 4fc68c4c1a114ba597b4f3b082f04622dfa0e0f6 ]
    
    Fix rxrpc_cleanup_ring() to use rxrpc_purge_queue() rather than
    skb_queue_purge() so that the count of outstanding skbuffs is correctly
    updated when a failed call is cleaned up.
    
    Without this rmmod may hang waiting for rxrpc_n_rx_skbs to become zero.
    
    Fixes: 5d7edbc9231e ("rxrpc: Get rid of the Rx ring")
    Reported-by: Marc Dionne <marc.dionne@xxxxxxxxxxxx>
    Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
    cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
    cc: Eric Dumazet <edumazet@xxxxxxxxxx>
    cc: Jakub Kicinski <kuba@xxxxxxxxxx>
    cc: Paolo Abeni <pabeni@xxxxxxxxxx>
    cc: linux-afs@xxxxxxxxxxxxxxxxxxx
    cc: netdev@xxxxxxxxxxxxxxx
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/rxrpc/call_object.c b/net/rxrpc/call_object.c
index 773eecd1e979..f10b37c14772 100644
--- a/net/rxrpc/call_object.c
+++ b/net/rxrpc/call_object.c
@@ -545,8 +545,8 @@ void rxrpc_get_call(struct rxrpc_call *call, enum rxrpc_call_trace why)
  */
 static void rxrpc_cleanup_ring(struct rxrpc_call *call)
 {
-	skb_queue_purge(&call->recvmsg_queue);
-	skb_queue_purge(&call->rx_oos_queue);
+	rxrpc_purge_queue(&call->recvmsg_queue);
+	rxrpc_purge_queue(&call->rx_oos_queue);
 }
 
 /*




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux