Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42dceebe authored by K. Y. Srinivasan's avatar K. Y. Srinivasan Committed by Greg Kroah-Hartman
Browse files

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: default avatarK. Y. Srinivasan <kys@microsoft.com>
Cc: stable <stable@vger.kernel.org> # 3.11
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ef22d576
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -292,6 +292,13 @@ static void vmbus_process_offer(struct work_struct *work)
		return;
	}

	/*
	 * 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
@@ -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;
	}
}