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