]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
vmbus: use resource for hyperv mmio region
authorGerd Hoffmann <kraxel@redhat.com>
Mon, 24 Feb 2014 13:17:09 +0000 (14:17 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Feb 2014 00:15:05 +0000 (16:15 -0800)
Use a resource for the hyperv mmio region instead of start/size
variables.  Register the region properly so it shows up in
/proc/iomem.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hv/vmbus_drv.c
include/linux/hyperv.h

index 2352ae481e8719d9686d2f6f24406971361bb3d8..a14f60340bfc4701d9fb455a2ce01c413f3b4ab6 100644 (file)
@@ -43,10 +43,12 @@ static struct acpi_device  *hv_acpi_dev;
 static struct tasklet_struct msg_dpc;
 static struct completion probe_event;
 static int irq;
-u64 hyperv_mmio_start;
-EXPORT_SYMBOL_GPL(hyperv_mmio_start);
-u64 hyperv_mmio_size;
-EXPORT_SYMBOL_GPL(hyperv_mmio_size);
+
+struct resource hyperv_mmio = {
+       .name  = "hyperv mmio",
+       .flags = IORESOURCE_MEM,
+};
+EXPORT_SYMBOL_GPL(hyperv_mmio);
 
 static int vmbus_exists(void)
 {
@@ -902,8 +904,8 @@ static acpi_status vmbus_walk_resources(struct acpi_resource *res, void *ctx)
                break;
 
        case ACPI_RESOURCE_TYPE_ADDRESS64:
-               hyperv_mmio_start = res->data.address64.minimum;
-               hyperv_mmio_size = res->data.address64.address_length;
+               hyperv_mmio.start = res->data.address64.minimum;
+               hyperv_mmio.end = res->data.address64.maximum;
                break;
        }
 
@@ -933,6 +935,8 @@ static int vmbus_acpi_add(struct acpi_device *device)
 
                if (ACPI_FAILURE(result))
                        goto acpi_walk_err;
+               if (hyperv_mmio.start && hyperv_mmio.end)
+                       request_resource(&iomem_resource, &hyperv_mmio);
        }
        ret_val = 0;
 
index 62ea1a06836a8a875d2c03b9a181e97e92224de5..330ec44de575e44ce8557a8a0a6d61a72bccde6d 100644 (file)
@@ -1167,8 +1167,7 @@ int hv_vss_init(struct hv_util_service *);
 void hv_vss_deinit(void);
 void hv_vss_onchannelcallback(void *);
 
-extern u64 hyperv_mmio_start;
-extern u64 hyperv_mmio_size;
+extern struct resource hyperv_mmio;
 
 /*
  * Negotiated version with the Host.