When the driver unloads, the device must persist. A channel represents the 
device and so we should not free the channel when the channel is closed as 
part of the driver unloading.

Signed-off-by: K. Y. Srinivasan <[email protected]>
Signed-off-by: Haiyang Zhang <[email protected]>
Signed-off-by: Abhishek Kane <[email protected]>
---
 drivers/staging/hv/channel.c |   14 --------------
 1 files changed, 0 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/hv/channel.c b/drivers/staging/hv/channel.c
index f655e59..aca9ac8 100644
--- a/drivers/staging/hv/channel.c
+++ b/drivers/staging/hv/channel.c
@@ -552,7 +552,6 @@ void vmbus_close(struct vmbus_channel *channel)
 {
        struct vmbus_channel_close_channel *msg;
        struct vmbus_channel_msginfo *info;
-       unsigned long flags;
        int ret;
 
        /* Stop callback and cancel the timer asap */
@@ -591,19 +590,6 @@ void vmbus_close(struct vmbus_channel *channel)
 
        kfree(info);
 
-       /*
-        * If we are closing the channel during an error path in
-        * opening the channel, don't free the channel since the
-        * caller will free the channel
-        */
-
-       if (channel->state == CHANNEL_OPEN_STATE) {
-               spin_lock_irqsave(&vmbus_connection.channel_lock, flags);
-               list_del(&channel->listentry);
-               spin_unlock_irqrestore(&vmbus_connection.channel_lock, flags);
-
-               free_channel(channel);
-       }
 }
 EXPORT_SYMBOL_GPL(vmbus_close);
 
-- 
1.7.4.1

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/virtualization

Reply via email to