diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2008-05-16 16:15:06 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-05-22 05:59:25 -0400 |
commit | f7f13b0b9253e21557ad090144a44f20860332f1 (patch) | |
tree | 9d99ec82a0e09f8b55c96291bf9fb6c4a12e520c | |
parent | 91ad757c2fc35ec79dd2c909dc6dc721b9c257f3 (diff) |
sfc: Simplified efx_rx_calc_buffer_size() using get_order()
Merged it into its only caller, efx_init_channels().
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-rw-r--r-- | drivers/net/sfc/efx.c | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c index 48aae4702bad..1a065fcadc50 100644 --- a/drivers/net/sfc/efx.c +++ b/drivers/net/sfc/efx.c | |||
@@ -317,26 +317,6 @@ static void efx_remove_eventq(struct efx_channel *channel) | |||
317 | * | 317 | * |
318 | *************************************************************************/ | 318 | *************************************************************************/ |
319 | 319 | ||
320 | /* Setup per-NIC RX buffer parameters. | ||
321 | * Calculate the rx buffer allocation parameters required to support | ||
322 | * the current MTU, including padding for header alignment and overruns. | ||
323 | */ | ||
324 | static void efx_calc_rx_buffer_params(struct efx_nic *efx) | ||
325 | { | ||
326 | unsigned int order, len; | ||
327 | |||
328 | len = (max(EFX_PAGE_IP_ALIGN, NET_IP_ALIGN) + | ||
329 | EFX_MAX_FRAME_LEN(efx->net_dev->mtu) + | ||
330 | efx->type->rx_buffer_padding); | ||
331 | |||
332 | /* Calculate page-order */ | ||
333 | for (order = 0; ((1u << order) * PAGE_SIZE) < len; ++order) | ||
334 | ; | ||
335 | |||
336 | efx->rx_buffer_len = len; | ||
337 | efx->rx_buffer_order = order; | ||
338 | } | ||
339 | |||
340 | static int efx_probe_channel(struct efx_channel *channel) | 320 | static int efx_probe_channel(struct efx_channel *channel) |
341 | { | 321 | { |
342 | struct efx_tx_queue *tx_queue; | 322 | struct efx_tx_queue *tx_queue; |
@@ -387,7 +367,14 @@ static int efx_init_channels(struct efx_nic *efx) | |||
387 | struct efx_channel *channel; | 367 | struct efx_channel *channel; |
388 | int rc = 0; | 368 | int rc = 0; |
389 | 369 | ||
390 | efx_calc_rx_buffer_params(efx); | 370 | /* Calculate the rx buffer allocation parameters required to |
371 | * support the current MTU, including padding for header | ||
372 | * alignment and overruns. | ||
373 | */ | ||
374 | efx->rx_buffer_len = (max(EFX_PAGE_IP_ALIGN, NET_IP_ALIGN) + | ||
375 | EFX_MAX_FRAME_LEN(efx->net_dev->mtu) + | ||
376 | efx->type->rx_buffer_padding); | ||
377 | efx->rx_buffer_order = get_order(efx->rx_buffer_len); | ||
391 | 378 | ||
392 | /* Initialise the channels */ | 379 | /* Initialise the channels */ |
393 | efx_for_each_channel(channel, efx) { | 380 | efx_for_each_channel(channel, efx) { |