mirror of
https://github.com/torvalds/linux.git
synced 2024-11-16 09:02:00 +00:00
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>
This commit is contained in:
parent
91ad757c2f
commit
f7f13b0b92
@ -317,26 +317,6 @@ static void efx_remove_eventq(struct efx_channel *channel)
|
||||
*
|
||||
*************************************************************************/
|
||||
|
||||
/* Setup per-NIC RX buffer parameters.
|
||||
* Calculate the rx buffer allocation parameters required to support
|
||||
* the current MTU, including padding for header alignment and overruns.
|
||||
*/
|
||||
static void efx_calc_rx_buffer_params(struct efx_nic *efx)
|
||||
{
|
||||
unsigned int order, len;
|
||||
|
||||
len = (max(EFX_PAGE_IP_ALIGN, NET_IP_ALIGN) +
|
||||
EFX_MAX_FRAME_LEN(efx->net_dev->mtu) +
|
||||
efx->type->rx_buffer_padding);
|
||||
|
||||
/* Calculate page-order */
|
||||
for (order = 0; ((1u << order) * PAGE_SIZE) < len; ++order)
|
||||
;
|
||||
|
||||
efx->rx_buffer_len = len;
|
||||
efx->rx_buffer_order = order;
|
||||
}
|
||||
|
||||
static int efx_probe_channel(struct efx_channel *channel)
|
||||
{
|
||||
struct efx_tx_queue *tx_queue;
|
||||
@ -387,7 +367,14 @@ static int efx_init_channels(struct efx_nic *efx)
|
||||
struct efx_channel *channel;
|
||||
int rc = 0;
|
||||
|
||||
efx_calc_rx_buffer_params(efx);
|
||||
/* Calculate the rx buffer allocation parameters required to
|
||||
* support the current MTU, including padding for header
|
||||
* alignment and overruns.
|
||||
*/
|
||||
efx->rx_buffer_len = (max(EFX_PAGE_IP_ALIGN, NET_IP_ALIGN) +
|
||||
EFX_MAX_FRAME_LEN(efx->net_dev->mtu) +
|
||||
efx->type->rx_buffer_padding);
|
||||
efx->rx_buffer_order = get_order(efx->rx_buffer_len);
|
||||
|
||||
/* Initialise the channels */
|
||||
efx_for_each_channel(channel, efx) {
|
||||
|
Loading…
Reference in New Issue
Block a user