|
@@ -501,15 +501,6 @@ static int vmbus_close_internal(struct vmbus_channel *channel)
|
|
|
put_cpu();
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * If the channel has been rescinded; process device removal.
|
|
|
- */
|
|
|
- if (channel->rescind) {
|
|
|
- hv_process_channel_removal(channel,
|
|
|
- channel->offermsg.child_relid);
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
/* Send a closing message */
|
|
|
|
|
|
msg = &channel->close_msg.msg;
|
|
@@ -549,6 +540,12 @@ static int vmbus_close_internal(struct vmbus_channel *channel)
|
|
|
free_pages((unsigned long)channel->ringbuffer_pages,
|
|
|
get_order(channel->ringbuffer_pagecount * PAGE_SIZE));
|
|
|
|
|
|
+ /*
|
|
|
+ * If the channel has been rescinded; process device removal.
|
|
|
+ */
|
|
|
+ if (channel->rescind)
|
|
|
+ hv_process_channel_removal(channel,
|
|
|
+ channel->offermsg.child_relid);
|
|
|
return ret;
|
|
|
}
|
|
|
|