sfc: Use the correct maximum TX DMA ring size for SFC9100
authorBen Hutchings <bhutchings@solarflare.com>
Thu, 23 Jan 2014 14:35:48 +0000 (14:35 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Jan 2014 21:40:51 +0000 (13:40 -0800)
commitd9317aea16ecec7694271ef11fb7791a0f0d9cc5
tree9c1905eeb0c2a503acefcacf9743192da030dc6a
parent8533ccf3e78bc9ca17543c0109ff832351f88d51
sfc: Use the correct maximum TX DMA ring size for SFC9100

As part of a workaround for a hardware erratum in the SFC9100 family
(SF bug 35388), the TX_DESC_UPD_DWORD register address is also used
for communicating with the event block, and only descriptor pointer
values < 2048 are valid.

If the TX DMA ring size is increased to 4096 descriptors (which the
firmware still allows) then we may write a descriptor pointer
value >= 2048, which has entirely different and undesirable effects!

Limit the TX DMA ring size correctly when this workaround is in
effect.

Fixes: 8127d661e77f ('sfc: Add support for Solarflare SFC9100 family')
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Shradha Shah <sshah@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/efx.h
drivers/net/ethernet/sfc/ethtool.c