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

    Drivers: hv: vmbus: Fix a bug in the handling of channel offers

to my char-misc git tree which can be found at
    git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-next branch.

The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)

The patch will also be merged in the next major kernel release
during the merge window.

If you have any questions about this process, please let me know.


>From 42dceebe34600b2d02a38baa3e869009ba3d14c7 Mon Sep 17 00:00:00 2001
From: "K. Y. Srinivasan" <[email protected]>
Date: Mon, 26 Aug 2013 14:08:58 -0700
Subject: Drivers: hv: vmbus: Fix a bug in the handling of channel offers

The channel state should be correctly set before registering the device. In the 
current
code the driver probe would fail for channels that have been rescinded and 
subsequently
re-offered. Fix the bug.

Signed-off-by: K. Y. Srinivasan <[email protected]>
Cc: stable <[email protected]> # 3.11
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 drivers/hv/channel_mgmt.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
index 12ec8c8..bbff5f2 100644
--- a/drivers/hv/channel_mgmt.c
+++ b/drivers/hv/channel_mgmt.c
@@ -293,6 +293,13 @@ static void vmbus_process_offer(struct work_struct *work)
        }
 
        /*
+        * This state is used to indicate a successful open
+        * so that when we do close the channel normally, we
+        * can cleanup properly
+        */
+       newchannel->state = CHANNEL_OPEN_STATE;
+
+       /*
         * Start the process of binding this offer to the driver
         * We need to set the DeviceObject field before calling
         * vmbus_child_dev_add()
@@ -318,13 +325,6 @@ static void vmbus_process_offer(struct work_struct *work)
                kfree(newchannel->device_obj);
 
                free_channel(newchannel);
-       } else {
-               /*
-                * This state is used to indicate a successful open
-                * so that when we do close the channel normally, we
-                * can cleanup properly
-                */
-               newchannel->state = CHANNEL_OPEN_STATE;
        }
 }
 
-- 
1.8.4.6.g82e253f.dirty


--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to