--- /dev/null
+From foo@baz Mon Jul 13 17:09:34 PDT 2009
+Date: Mon, 13 Jul 2009 17:09:34 -0700
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Subject: Staging: hv: make the Hyper-V virtual bus code build
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+The #define KERNEL_2_6_27 needs to be set, and I adjusted the include
+directories a bit to get things to build properly.
+
+I also fixed up the direct access of bus_id, as that field is now gone.
+
+The hv_vmbus code should now build properly, with no errors.
+
+Cc: Hank Janssen <hjanssen@microsoft.com>
+Cc: Haiyang Zhang <haiyangz@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/hv/Channel.c | 4 ++--
+ drivers/staging/hv/Channel.h | 2 +-
+ drivers/staging/hv/ChannelInterface.h | 2 +-
+ drivers/staging/hv/ChannelMgmt.c | 4 ++--
+ drivers/staging/hv/ChannelMgmt.h | 8 ++++----
+ drivers/staging/hv/Connection.c | 2 +-
+ drivers/staging/hv/Hv.c | 2 +-
+ drivers/staging/hv/Hv.h | 16 ++++++++--------
+ drivers/staging/hv/RingBuffer.c | 2 +-
+ drivers/staging/hv/RingBuffer.h | 2 +-
+ drivers/staging/hv/Sources.c | 1 +
+ drivers/staging/hv/Vmbus.c | 2 +-
+ drivers/staging/hv/VmbusPrivate.h | 4 ++--
+ drivers/staging/hv/include/ChannelMessages.h | 2 +-
+ drivers/staging/hv/osd.c | 3 ++-
+ drivers/staging/hv/vmbus_drv.c | 15 ++++++++-------
+ 16 files changed, 37 insertions(+), 34 deletions(-)
+
+--- a/drivers/staging/hv/Channel.c
++++ b/drivers/staging/hv/Channel.c
+@@ -22,8 +22,8 @@
+ */
+
+
+-#include "osd.h"
+-#include "logging.h"
++#include "include/osd.h"
++#include "include/logging.h"
+
+ #include "VmbusPrivate.h"
+
+--- a/drivers/staging/hv/Channel.h
++++ b/drivers/staging/hv/Channel.h
+@@ -25,7 +25,7 @@
+ #ifndef _CHANNEL_H_
+ #define _CHANNEL_H_
+
+-#include "osd.h"
++#include "include/osd.h"
+ #include "ChannelMgmt.h"
+
+ #pragma pack(push,1)
+--- a/drivers/staging/hv/ChannelInterface.h
++++ b/drivers/staging/hv/ChannelInterface.h
+@@ -25,7 +25,7 @@
+ #ifndef _CHANNEL_INTERFACE_H_
+ #define _CHANNEL_INTERFACE_H_
+
+-#include "VmbusApi.h"
++#include "include/VmbusApi.h"
+
+ INTERNAL void
+ GetChannelInterface(
+--- a/drivers/staging/hv/ChannelMgmt.c
++++ b/drivers/staging/hv/ChannelMgmt.c
+@@ -22,8 +22,8 @@
+ */
+
+
+-#include "osd.h"
+-#include "logging.h"
++#include "include/osd.h"
++#include "include/logging.h"
+
+ #include "VmbusPrivate.h"
+
+--- a/drivers/staging/hv/ChannelMgmt.h
++++ b/drivers/staging/hv/ChannelMgmt.h
+@@ -25,12 +25,12 @@
+ #ifndef _CHANNEL_MGMT_H_
+ #define _CHANNEL_MGMT_H_
+
+-#include "osd.h"
+-#include "List.h"
++#include "include/osd.h"
++#include "include/List.h"
+ #include "RingBuffer.h"
+
+-#include "VmbusChannelInterface.h"
+-#include "ChannelMessages.h"
++#include "include/VmbusChannelInterface.h"
++#include "include/ChannelMessages.h"
+
+
+
+--- a/drivers/staging/hv/Connection.c
++++ b/drivers/staging/hv/Connection.c
+@@ -22,7 +22,7 @@
+ */
+
+
+-#include "logging.h"
++#include "include/logging.h"
+
+ #include "VmbusPrivate.h"
+
+--- a/drivers/staging/hv/Hv.c
++++ b/drivers/staging/hv/Hv.c
+@@ -22,7 +22,7 @@
+ */
+
+
+-#include "logging.h"
++#include "include/logging.h"
+ #include "VmbusPrivate.h"
+
+ //
+--- a/drivers/staging/hv/Hv.h
++++ b/drivers/staging/hv/Hv.h
+@@ -25,23 +25,23 @@
+ #ifndef __HV_H__
+ #define __HV_H__
+
+-#include "osd.h"
++#include "include/osd.h"
+
+-#include "HvTypes.h"
+-#include "HvStatus.h"
++#include "include/HvTypes.h"
++#include "include/HvStatus.h"
+ //#include "HvVmApi.h"
+ //#include "HvKeApi.h"
+ //#include "HvMmApi.h"
+ //#include "HvCpuApi.h"
+-#include "HvHalApi.h"
+-#include "HvVpApi.h"
++#include "include/HvHalApi.h"
++#include "include/HvVpApi.h"
+ //#include "HvTrApi.h"
+-#include "HvSynicApi.h"
++#include "include/HvSynicApi.h"
+ //#include "HvAmApi.h"
+ //#include "HvHkApi.h"
+ //#include "HvValApi.h"
+-#include "HvHcApi.h"
+-#include "HvPtApi.h"
++#include "include/HvHcApi.h"
++#include "include/HvPtApi.h"
+
+ enum
+ {
+--- a/drivers/staging/hv/include/ChannelMessages.h
++++ b/drivers/staging/hv/include/ChannelMessages.h
+@@ -24,7 +24,7 @@
+
+ #pragma once
+
+-#include <VmbusPacketFormat.h>
++#include "VmbusPacketFormat.h"
+
+ #define C_ASSERT(x)
+ typedef UINT32 NTSTATUS;
+--- a/drivers/staging/hv/osd.c
++++ b/drivers/staging/hv/osd.c
+@@ -21,6 +21,7 @@
+ *
+ */
+
++#define KERNEL_2_6_27
+
+ #include <linux/module.h>
+ #include <linux/init.h>
+@@ -46,7 +47,7 @@
+ #include <asm/kmap_types.h>
+ #include <asm/atomic.h>
+
+-#include "osd.h"
++#include "include/osd.h"
+
+ //
+ // Data types
+--- a/drivers/staging/hv/RingBuffer.c
++++ b/drivers/staging/hv/RingBuffer.c
+@@ -22,7 +22,7 @@
+ */
+
+
+-#include "logging.h"
++#include "include/logging.h"
+ #include "RingBuffer.h"
+
+ //
+--- a/drivers/staging/hv/RingBuffer.h
++++ b/drivers/staging/hv/RingBuffer.h
+@@ -25,7 +25,7 @@
+ #ifndef _RING_BUFFER_H_
+ #define _RING_BUFFER_H_
+
+-#include "osd.h"
++#include "include/osd.h"
+
+ typedef struct _SG_BUFFER_LIST {
+ PVOID Data;
+--- a/drivers/staging/hv/Sources.c
++++ b/drivers/staging/hv/Sources.c
+@@ -21,6 +21,7 @@
+ *
+ */
+
++#define KERNEL_2_6_27
+
+ #include "Vmbus.c"
+ #include "Hv.c"
+--- a/drivers/staging/hv/Vmbus.c
++++ b/drivers/staging/hv/Vmbus.c
+@@ -22,7 +22,7 @@
+ */
+
+
+-#include "logging.h"
++#include "include/logging.h"
+ #include "VersionInfo.h"
+ #include "VmbusPrivate.h"
+
+--- a/drivers/staging/hv/vmbus_drv.c
++++ b/drivers/staging/hv/vmbus_drv.c
+@@ -21,6 +21,7 @@
+ *
+ */
+
++#define KERNEL_2_6_27
+
+ #include <linux/init.h>
+ #include <linux/module.h>
+@@ -29,8 +30,8 @@
+ #include <linux/interrupt.h>
+ #include <linux/sysctl.h>
+
+-#include "logging.h"
+-#include "vmbus.h"
++#include "include/logging.h"
++#include "include/vmbus.h"
+
+ //
+ // Defines
+@@ -451,7 +452,7 @@ int vmbus_bus_init(PFN_DRIVERINITIALIZE
+ goto cleanup;
+ }
+ //strcpy(dev_ctx->device.bus_id, dev_ctx->device_obj.name);
+- sprintf(dev_ctx->device.bus_id, "vmbus_0_0");
++ dev_set_name(&dev_ctx->device, "vmbus_0_0");
+ memcpy(&dev_ctx->class_id, &dev_ctx->device_obj.deviceType, sizeof(GUID));
+ memcpy(&dev_ctx->device_id, &dev_ctx->device_obj.deviceInstance, sizeof(GUID));
+
+@@ -656,16 +657,16 @@ static int vmbus_child_device_register(D
+ //
+ // Make sure we are not registered already
+ //
+- if (child_device_ctx->device.bus_id[0] != '\0')
++ if (strlen(dev_name(&child_device_ctx->device)) != 0)
+ {
+- DPRINT_ERR(VMBUS_DRV, "child device (%p) already registered - busid %s", child_device_ctx, child_device_ctx->device.bus_id);
++ DPRINT_ERR(VMBUS_DRV, "child device (%p) already registered - busid %s", child_device_ctx, dev_name(&child_device_ctx->device));
+
+ ret = -1;
+ goto Cleanup;
+ }
+
+ // Set the device bus id. Otherwise, device_register()will fail.
+- sprintf(child_device_ctx->device.bus_id, "vmbus_0_%d", InterlockedIncrement(&device_num));
++ dev_set_name(&child_device_ctx->device, "vmbus_0_%d", InterlockedIncrement(&device_num));
+
+ // The new device belongs to this bus
+ child_device_ctx->device.bus = &g_vmbus_drv.bus; //device->dev.bus;
+@@ -924,7 +925,7 @@ static int vmbus_probe(struct device *ch
+ ret = device_ctx->probe_error = driver_ctx->probe(child_device);
+ if (ret != 0)
+ {
+- DPRINT_ERR(VMBUS_DRV, "probe() failed for device %s (%p) on driver %s (%d)...", child_device->bus_id, child_device, child_device->driver->name, ret);
++ DPRINT_ERR(VMBUS_DRV, "probe() failed for device %s (%p) on driver %s (%d)...", dev_name(child_device), child_device, child_device->driver->name, ret);
+
+ #ifdef KERNEL_2_6_27
+ INIT_WORK(&device_ctx->probe_failed_work_item, vmbus_probe_failed_cb);
+--- a/drivers/staging/hv/VmbusPrivate.h
++++ b/drivers/staging/hv/VmbusPrivate.h
+@@ -30,14 +30,14 @@
+ #endif
+
+ #include "Hv.h"
+-#include "VmbusApi.h"
++#include "include/VmbusApi.h"
+ #include "Channel.h"
+ #include "ChannelMgmt.h"
+ #include "ChannelInterface.h"
+ //#include "ChannelMessages.h"
+ #include "RingBuffer.h"
+ //#include "Packet.h"
+-#include "List.h"
++#include "include/List.h"
+
+ //
+ // Defines