Staging: hv: storvsc: Handle IDE devices using the storvsc driver
authorK. Y. Srinivasan <kys@microsoft.com>
Sat, 27 Aug 2011 18:31:18 +0000 (11:31 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 29 Aug 2011 18:01:06 +0000 (11:01 -0700)
Now, enable handling of all IDE devices by extending the storvsc
device id table to handle IDE guid. As part of this cleanup Kconfig
and Hyper-V Makefile to not build the IDE driver (blkvsc).

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/hv/Kconfig
drivers/staging/hv/Makefile
drivers/staging/hv/storvsc_drv.c

index 5e0c9f6..26b5064 100644 (file)
@@ -15,13 +15,6 @@ config HYPERV_STORAGE
        help
         Select this option to enable the Hyper-V virtual storage driver.
 
-config HYPERV_BLOCK
-       tristate "Microsoft Hyper-V virtual block driver"
-       depends on BLOCK && SCSI && (LBDAF || 64BIT)
-       default HYPERV
-       help
-         Select this option to enable the Hyper-V virtual block driver.
-
 config HYPERV_NET
        tristate "Microsoft Hyper-V virtual network driver"
        depends on NET
index 3004674..bb89437 100644 (file)
@@ -1,6 +1,5 @@
 obj-$(CONFIG_HYPERV)           += hv_vmbus.o hv_timesource.o
 obj-$(CONFIG_HYPERV_STORAGE)   += hv_storvsc.o
-obj-$(CONFIG_HYPERV_BLOCK)     += hv_blkvsc.o
 obj-$(CONFIG_HYPERV_NET)       += hv_netvsc.o
 obj-$(CONFIG_HYPERV_UTILS)     += hv_utils.o
 obj-$(CONFIG_HYPERV_MOUSE)     += hv_mouse.o
@@ -9,6 +8,5 @@ hv_vmbus-y := vmbus_drv.o \
                 hv.o connection.o channel.o \
                 channel_mgmt.o ring_buffer.o
 hv_storvsc-y := storvsc_drv.o storvsc.o
-hv_blkvsc-y := blkvsc_drv.o  storvsc.o
 hv_netvsc-y := netvsc_drv.o netvsc.o rndis_filter.o
 hv_utils-y := hv_util.o hv_kvp.o
index f434200..9464f99 100644 (file)
@@ -645,27 +645,22 @@ static struct scsi_host_template scsi_driver = {
        .dma_boundary =         PAGE_SIZE-1,
 };
 
+/*
+ * The storvsc_probe function assumes that the IDE guid
+ * is the second entry.
+ */
 static const struct hv_vmbus_device_id id_table[] = {
        /* SCSI guid */
        { VMBUS_DEVICE(0xd9, 0x63, 0x61, 0xba, 0xa1, 0x04, 0x29, 0x4d,
                       0xb6, 0x05, 0x72, 0xe2, 0xff, 0xb1, 0xdc, 0x7f) },
+       /* IDE guid */
+       { VMBUS_DEVICE(0x32, 0x26, 0x41, 0x32, 0xcb, 0x86, 0xa2, 0x44,
+                      0x9b, 0x5c, 0x50, 0xd1, 0x41, 0x73, 0x54, 0xf5) },
        { },
 };
 
 MODULE_DEVICE_TABLE(vmbus, id_table);
 
-/*
- * This declaration is temporary; once we get the
- * infrastructure in place, we will integrate with
- * id_table.
- */
-
-static const uuid_le ide_blk_guid = {
-       .b = {
-               0x32, 0x26, 0x41, 0x32, 0xcb, 0x86, 0xa2, 0x44,
-               0x9b, 0x5c, 0x50, 0xd1, 0x41, 0x73, 0x54, 0xf5
-       }
-};
 
 /*
  * storvsc_probe - Add a new device for this driver
@@ -681,7 +676,7 @@ static int storvsc_probe(struct hv_device *device)
        int path = 0;
        int target = 0;
 
-       if (!uuid_le_cmp(device->dev_type, ide_blk_guid))
+       if (!memcmp(&device->dev_type.b, id_table[1].guid, sizeof(uuid_le)))
                dev_is_ide = true;
        else
                dev_is_ide = false;