From: K. Y. Srinivasan Date: Tue, 10 May 2011 14:56:01 +0000 (-0700) Subject: Staging: hv: Use the rinbuffer size info in struct storvsc_device_info X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=fa4d123a1f893b2d902a8844a0b1166bec56c180;p=linux-beck.git Staging: hv: Use the rinbuffer size info in struct storvsc_device_info Use the rinbuffer size info in struct storvsc_device_info. Signed-off-by: K. Y. Srinivasan Signed-off-by: Haiyang Zhang Signed-off-by: Abhishek Kane Signed-off-by: Hank Janssen Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/hv/blkvsc_drv.c b/drivers/staging/hv/blkvsc_drv.c index 8721dbcf8964..0038a9724418 100644 --- a/drivers/staging/hv/blkvsc_drv.c +++ b/drivers/staging/hv/blkvsc_drv.c @@ -146,6 +146,8 @@ static int blkvsc_device_add(struct hv_device *device, device_info = (struct storvsc_device_info *)additional_info; + device_info->ring_buffer_size = blkvsc_ringbuffer_size; + ret = storvsc_dev_add(device, additional_info); if (ret != 0) return ret; @@ -818,14 +820,11 @@ static const struct block_device_operations block_ops = { */ static int blkvsc_drv_init(void) { - struct storvsc_driver *storvsc_drv = &blkvsc_drv; struct hv_driver *drv = &blkvsc_drv.base; int ret; BUILD_BUG_ON(sizeof(sector_t) != 8); - storvsc_drv->ring_buffer_size = blkvsc_ringbuffer_size; - memcpy(&drv->dev_type, &dev_type, sizeof(struct hv_guid)); drv->name = drv_name; drv->driver.name = drv_name; diff --git a/drivers/staging/hv/storvsc.c b/drivers/staging/hv/storvsc.c index 41361f516772..8d7a49038178 100644 --- a/drivers/staging/hv/storvsc.c +++ b/drivers/staging/hv/storvsc.c @@ -363,19 +363,17 @@ static void storvsc_on_channel_callback(void *context) return; } -static int storvsc_connect_to_vsp(struct hv_device *device) +static int storvsc_connect_to_vsp(struct hv_device *device, u32 ring_size) { struct vmstorage_channel_properties props; - struct storvsc_driver *stor_driver; int ret; - stor_driver = drv_to_stordrv(device->device.driver); memset(&props, 0, sizeof(struct vmstorage_channel_properties)); /* Open the channel */ ret = vmbus_open(device->channel, - stor_driver->ring_buffer_size, - stor_driver->ring_buffer_size, + ring_size, + ring_size, (void *)&props, sizeof(struct vmstorage_channel_properties), storvsc_on_channel_callback, device); @@ -413,7 +411,7 @@ int storvsc_dev_add(struct hv_device *device, stor_device->port_number = device_info->port_number; /* Send it back up */ - ret = storvsc_connect_to_vsp(device); + ret = storvsc_connect_to_vsp(device, device_info->ring_buffer_size); device_info->path_id = stor_device->path_id; device_info->target_id = stor_device->target_id; diff --git a/drivers/staging/hv/storvsc_drv.c b/drivers/staging/hv/storvsc_drv.c index 7d8b8f9be189..1fb0521e2a53 100644 --- a/drivers/staging/hv/storvsc_drv.c +++ b/drivers/staging/hv/storvsc_drv.c @@ -733,6 +733,7 @@ static int storvsc_probe(struct hv_device *device) } device_info.port_number = host->host_no; + device_info.ring_buffer_size = storvsc_ringbuffer_size; /* Call to the vsc driver to add the device */ ret = storvsc_dev_add(device, (void *)&device_info);