diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-09-13 11:22:10 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-09-13 11:22:10 -0700 |
| commit | 719d631363a9728e4b082cb689b802ece4476f6c (patch) | |
| tree | f0ea8e8c62621b7536f5216242bdc5dc5781a28e /f07.patch | |
| parent | 44ea8a3f679a11e5ac3c5b174b645669e33fd8cf (diff) | |
| download | patches-719d631363a9728e4b082cb689b802ece4476f6c.tar.gz | |
rename hv patches and document them better.
Diffstat (limited to 'f07.patch')
| -rw-r--r-- | f07.patch | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/f07.patch b/f07.patch deleted file mode 100644 index 5bac79530350b4..00000000000000 --- a/f07.patch +++ /dev/null @@ -1,108 +0,0 @@ -From foo@baz Mon Sep 9 14:36:31 PDT 2013 -Date: Mon, 09 Sep 2013 14:36:31 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: make "monitor_pages" a "real" pointer array - -monitor_pages was a void pointer, containing an unknown number of arrays that -we just "knew" were a child and parent array of a specific size. Instead of -that implicit knowledge, let's make them a real pointer, allowing us to have -type safety, and a semblance of sane addressing schemes. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 10 ++++------ - drivers/hv/connection.c | 21 ++++++++++----------- - drivers/hv/hyperv_vmbus.h | 2 +- - 3 files changed, 15 insertions(+), 18 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -47,8 +47,8 @@ static void vmbus_setevent(struct vmbus_ - (unsigned long *) vmbus_connection.send_int_page + - (channel->offermsg.child_relid >> 5)); - -- monitorpage = vmbus_connection.monitor_pages; -- monitorpage++; /* Get the child to parent monitor page */ -+ /* Get the child to parent monitor page */ -+ monitorpage = vmbus_connection.monitor_pages[1]; - - sync_set_bit(channel->monitor_bit, - (unsigned long *)&monitorpage->trigger_group -@@ -69,8 +69,7 @@ void vmbus_get_debug_info(struct vmbus_c - u8 monitor_group = (u8)channel->offermsg.monitorid / 32; - u8 monitor_offset = (u8)channel->offermsg.monitorid % 32; - -- monitorpage = (struct hv_monitor_page *)vmbus_connection.monitor_pages; -- -+ monitorpage = vmbus_connection.monitor_pages[0]; - debuginfo->servermonitor_pending = - monitorpage->trigger_group[monitor_group].pending; - debuginfo->servermonitor_latency = -@@ -79,8 +78,7 @@ void vmbus_get_debug_info(struct vmbus_c - monitorpage->parameter[monitor_group] - [monitor_offset].connectionid.u.id; - -- monitorpage++; -- -+ monitorpage = vmbus_connection.monitor_pages[1]; - debuginfo->clientmonitor_pending = - monitorpage->trigger_group[monitor_group].pending; - debuginfo->clientmonitor_latency = ---- a/drivers/hv/connection.c -+++ b/drivers/hv/connection.c -@@ -76,10 +76,8 @@ static int vmbus_negotiate_version(struc - msg->header.msgtype = CHANNELMSG_INITIATE_CONTACT; - msg->vmbus_version_requested = version; - msg->interrupt_page = virt_to_phys(vmbus_connection.int_page); -- msg->monitor_page1 = virt_to_phys(vmbus_connection.monitor_pages); -- msg->monitor_page2 = virt_to_phys( -- (void *)((unsigned long)vmbus_connection.monitor_pages + -- PAGE_SIZE)); -+ msg->monitor_page1 = virt_to_phys(vmbus_connection.monitor_pages[0]); -+ msg->monitor_page2 = virt_to_phys(vmbus_connection.monitor_pages[1]); - - /* - * Add to list before we send the request since we may -@@ -169,9 +167,10 @@ int vmbus_connect(void) - * Setup the monitor notification facility. The 1st page for - * parent->child and the 2nd page for child->parent - */ -- vmbus_connection.monitor_pages = -- (void *)__get_free_pages((GFP_KERNEL|__GFP_ZERO), 1); -- if (vmbus_connection.monitor_pages == NULL) { -+ vmbus_connection.monitor_pages[0] = (void *)__get_free_pages((GFP_KERNEL|__GFP_ZERO), 0); -+ vmbus_connection.monitor_pages[1] = (void *)__get_free_pages((GFP_KERNEL|__GFP_ZERO), 0); -+ if ((vmbus_connection.monitor_pages[0] == NULL) || -+ (vmbus_connection.monitor_pages[1] == NULL)) { - ret = -ENOMEM; - goto cleanup; - } -@@ -229,10 +228,10 @@ cleanup: - vmbus_connection.int_page = NULL; - } - -- if (vmbus_connection.monitor_pages) { -- free_pages((unsigned long)vmbus_connection.monitor_pages, 1); -- vmbus_connection.monitor_pages = NULL; -- } -+ free_pages((unsigned long)vmbus_connection.monitor_pages[0], 1); -+ free_pages((unsigned long)vmbus_connection.monitor_pages[1], 1); -+ vmbus_connection.monitor_pages[0] = NULL; -+ vmbus_connection.monitor_pages[1] = NULL; - - kfree(msginfo); - ---- a/drivers/hv/hyperv_vmbus.h -+++ b/drivers/hv/hyperv_vmbus.h -@@ -612,7 +612,7 @@ struct vmbus_connection { - * 2 pages - 1st page for parent->child notification and 2nd - * is child->parent notification - */ -- void *monitor_pages; -+ struct hv_monitor_page *monitor_pages[2]; - struct list_head chn_msg_list; - spinlock_t channelmsg_lock; - |
