[PATCH usbredir 4/8] Have each thread signal it's death.

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

 



This prevents a kernel panic when removing a module
at exactly the right time.

Signed-off-by: Jeremy White <jwhite@xxxxxxxxxxxxxxx>
---
 kernel/rx.c | 4 ++++
 kernel/tx.c | 5 +++++
 2 files changed, 9 insertions(+)

diff --git a/kernel/rx.c b/kernel/rx.c
index 92ffa97..16d87af 100644
--- a/kernel/rx.c
+++ b/kernel/rx.c
@@ -33,6 +33,10 @@ int usbredir_rx_loop(void *data)
 
 	pr_debug("%s exit\n", __func__);
 
+	spin_lock(&udev->lock);
+	udev->rx = NULL;
+	spin_unlock(&udev->lock);
+
 	usbredir_device_disconnect(udev);
 	usbredir_device_deallocate(udev, false, true);
 
diff --git a/kernel/tx.c b/kernel/tx.c
index 10e5e62..f509781 100644
--- a/kernel/tx.c
+++ b/kernel/tx.c
@@ -144,6 +144,11 @@ int usbredir_tx_loop(void *data)
 	}
 
 	pr_debug("%s exit\n", __func__);
+
+	spin_lock(&udev->lock);
+	udev->tx = NULL;
+	spin_unlock(&udev->lock);
+
 	usbredir_device_disconnect(udev);
 	usbredir_device_deallocate(udev, true, false);
 
-- 
2.1.4

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]