Skip to contentSkip to conversation

Patch "xen-netfront: Delete rx_refill_timer in xennet_disconnect_backend()" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Feb 12, 2017

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

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

xen-netfront: Delete rx_refill_timer in xennet_disconnect_backend()

to the 4.9-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:
xen-netfront-delete-rx_refill_timer-in-xennet_disconnect_backend.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 74470954857c264168d2b5a113904cf0cfd27d18 Mon Sep 17 00:00:00 2001

From: Boris Ostrovsky <[email protected]>
Date: Mon, 30 Jan 2017 12:45:46 -0500
Subject: xen-netfront: Delete rx_refill_timer in xennet_disconnect_backend()

From: Boris Ostrovsky <[email protected]>

commit 74470954857c264168d2b5a113904cf0cfd27d18 upstream.

rx_refill_timer should be deleted as soon as we disconnect from the backend since otherwise it is possible for the timer to go off before we get to xennet_destroy_queues(). If this happens we may dereference queue->rx.sring which is set to NULL in xennet_disconnect_backend().

---
 drivers/net/xen-netfront.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/net/xen-netfront.c +2 -1
@@ -1397,6 +1397,8 @@ static void xennet_disconnect_backend(st
 	for (i = 0; i < num_queues && info->queues; ++i) {
 		struct netfront_queue *queue = &info->queues[i];
 
+		del_timer_sync(&queue->rx_refill_timer);
+
 		if (queue->tx_irq && (queue->tx_irq == queue->rx_irq))
 			unbind_from_irqhandler(queue->tx_irq, queue);
 		if (queue->tx_irq && (queue->tx_irq != queue->rx_irq)) {
@@ -1751,7 +1753,6 @@ static void xennet_destroy_queues(struct
 
 		if (netif_running(info->netdev))
 			napi_disable(&queue->napi);
-		del_timer_sync(&queue->rx_refill_timer);
 		netif_napi_del(&queue->napi);
 	}
 

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/xen-netfront-delete-rx_refill_timer-in-xennet_disconnect_backend.patch