From 40c01d21235dfe8ed2394d7d552034b3bd2c0940 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 21 Feb 2012 23:22:00 +0000 Subject: [PATCH] --- yaml --- r: 290426 b: refs/heads/master c: c92aaff18e0a48f693678105343160e0bd032dfa h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/ethernet/sfc/efx.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 025ae20b35c3..55b5dee32892 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 01cb543db8a2d2dbcea5f357365ce1327ac46193 +refs/heads/master: c92aaff18e0a48f693678105343160e0bd032dfa diff --git a/trunk/drivers/net/ethernet/sfc/efx.c b/trunk/drivers/net/ethernet/sfc/efx.c index ac571cf14485..c7004dcb5838 100644 --- a/trunk/drivers/net/ethernet/sfc/efx.c +++ b/trunk/drivers/net/ethernet/sfc/efx.c @@ -585,7 +585,12 @@ static int efx_probe_channels(struct efx_nic *efx) /* Restart special buffer allocation */ efx->next_buffer_table = 0; - efx_for_each_channel(channel, efx) { + /* Probe channels in reverse, so that any 'extra' channels + * use the start of the buffer table. This allows the traffic + * channels to be resized without moving them or wasting the + * entries before them. + */ + efx_for_each_channel_rev(channel, efx) { rc = efx_probe_channel(channel); if (rc) { netif_err(efx, probe, efx->net_dev,