lkml.org 
[lkml]   [2011]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 132/206] Staging: hv: Compute max_outstanding_req_per_channel where it is needed
    Date
    Compute max_outstanding_req_per_channel where it is needed.

    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
    Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
    ---
    drivers/staging/hv/storvsc_drv.c | 30 +++++++++++++++---------------
    1 files changed, 15 insertions(+), 15 deletions(-)

    diff --git a/drivers/staging/hv/storvsc_drv.c b/drivers/staging/hv/storvsc_drv.c
    index 07db877..7d8b8f9 100644
    --- a/drivers/staging/hv/storvsc_drv.c
    +++ b/drivers/staging/hv/storvsc_drv.c
    @@ -90,20 +90,6 @@ static int storvsc_initialize(struct hv_driver *driver)
    memcpy(&driver->dev_type, &gStorVscDeviceType,
    sizeof(struct hv_guid));

    -
    - /*
    - * Divide the ring buffer data size (which is 1 page less
    - * than the ring buffer size since that page is reserved for
    - * the ring buffer indices) by the max request size (which is
    - * vmbus_channel_packet_multipage_buffer + struct vstor_packet + u64)
    - */
    - stor_driver->max_outstanding_req_per_channel =
    - ((stor_driver->ring_buffer_size - PAGE_SIZE) /
    - ALIGN(MAX_MULTIPAGE_BUFFER_PACKET +
    - sizeof(struct vstor_packet) + sizeof(u64),
    - sizeof(u64)));
    -
    -
    return 0;
    }

    @@ -797,13 +783,27 @@ static int storvsc_drv_init(void)
    int ret;
    struct storvsc_driver *storvsc_drv_obj = &storvsc_drv;
    struct hv_driver *drv = &storvsc_drv.base;
    + u32 max_outstanding_req_per_channel;
    +
    + /*
    + * Divide the ring buffer data size (which is 1 page less
    + * than the ring buffer size since that page is reserved for
    + * the ring buffer indices) by the max request size (which is
    + * vmbus_channel_packet_multipage_buffer + struct vstor_packet + u64)
    + */
    +
    + max_outstanding_req_per_channel =
    + ((storvsc_ringbuffer_size - PAGE_SIZE) /
    + ALIGN(MAX_MULTIPAGE_BUFFER_PACKET +
    + sizeof(struct vstor_packet) + sizeof(u64),
    + sizeof(u64)));

    storvsc_drv_obj->ring_buffer_size = storvsc_ringbuffer_size;

    /* Callback to client driver to complete the initialization */
    storvsc_initialize(&storvsc_drv_obj->base);

    - if (storvsc_drv_obj->max_outstanding_req_per_channel <
    + if (max_outstanding_req_per_channel <
    STORVSC_MAX_IO_REQUESTS)
    return -1;

    --
    1.7.4.1


    \
     
     \ /
      Last update: 2011-05-10 10:43    [W:3.572 / U:0.144 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site