diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2010-05-04 16:58:53 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-11 18:36:09 (GMT) |
commit | 450d7a4b7ace20fb1cbb4d87ccbccbac3f8895d0 (patch) | |
tree | 73cea927dd0458d3dde78493efae9690200b8d3d | |
parent | 7880fc54c985b4fbc0fab77f81b7f09610194e1c (diff) | |
download | linux-fsl-qoriq-450d7a4b7ace20fb1cbb4d87ccbccbac3f8895d0.tar.xz |
Staging: hv: ring parameter
The ring size parameter should be number of pages (not bytes).
Add module parameter information as well.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/staging/hv/NetVscApi.h | 1 | ||||
-rw-r--r-- | drivers/staging/hv/netvsc_drv.c | 9 |
2 files changed, 6 insertions, 4 deletions
diff --git a/drivers/staging/hv/NetVscApi.h b/drivers/staging/hv/NetVscApi.h index 95d7a32..c372c98 100644 --- a/drivers/staging/hv/NetVscApi.h +++ b/drivers/staging/hv/NetVscApi.h @@ -28,7 +28,6 @@ #include "VmbusApi.h" /* Defines */ -#define NETVSC_DEVICE_RING_BUFFER_SIZE (64*PAGE_SIZE) #define HW_MACADDR_LEN 6 /* Fwd declaration */ diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c index 2ce9437..b02455c 100644 --- a/drivers/staging/hv/netvsc_drv.c +++ b/drivers/staging/hv/netvsc_drv.c @@ -52,7 +52,11 @@ struct netvsc_driver_context { struct netvsc_driver drv_obj; }; -static int netvsc_ringbuffer_size = NETVSC_DEVICE_RING_BUFFER_SIZE; +/* Need at least MAX_SKB_FRAGS (18) + 1 + to handle worst case fragmented packet */ +static int ring_size = roundup_pow_of_two(2*MAX_SKB_FRAGS+1); +module_param(ring_size, int, S_IRUGO); +MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)"); /* The one and only one */ static struct netvsc_driver_context g_netvsc_drv; @@ -536,7 +540,7 @@ static int netvsc_drv_init(int (*drv_init)(struct hv_driver *drv)) vmbus_get_interface(&net_drv_obj->Base.VmbusChannelInterface); - net_drv_obj->RingBufferSize = netvsc_ringbuffer_size; + net_drv_obj->RingBufferSize = ring_size * PAGE_SIZE; net_drv_obj->OnReceiveCallback = netvsc_recv_callback; net_drv_obj->OnLinkStatusChanged = netvsc_linkstatus_callback; @@ -582,7 +586,6 @@ static void __exit netvsc_exit(void) MODULE_LICENSE("GPL"); MODULE_VERSION(HV_DRV_VERSION); MODULE_DESCRIPTION("Microsoft Hyper-V network driver"); -module_param(netvsc_ringbuffer_size, int, S_IRUGO); module_init(netvsc_init); module_exit(netvsc_exit); |