diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c index c9bd7f16018e..ff702a707a91 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | |||
@@ -4319,8 +4319,16 @@ static int bnx2x_setup_rss(struct bnx2x *bp, | |||
4319 | 4319 | ||
4320 | /* RSS keys */ | 4320 | /* RSS keys */ |
4321 | if (test_bit(BNX2X_RSS_SET_SRCH, &p->rss_flags)) { | 4321 | if (test_bit(BNX2X_RSS_SET_SRCH, &p->rss_flags)) { |
4322 | memcpy(&data->rss_key[0], &p->rss_key[0], | 4322 | u8 *dst = (u8 *)(data->rss_key) + sizeof(data->rss_key); |
4323 | sizeof(data->rss_key)); | 4323 | const u8 *src = (const u8 *)p->rss_key; |
4324 | int i; | ||
4325 | |||
4326 | /* Apparently, bnx2x reads this array in reverse order | ||
4327 | * We need to byte swap rss_key to comply with Toeplitz specs. | ||
4328 | */ | ||
4329 | for (i = 0; i < sizeof(data->rss_key); i++) | ||
4330 | *--dst = *src++; | ||
4331 | |||
4324 | caps |= ETH_RSS_UPDATE_RAMROD_DATA_UPDATE_RSS_KEY; | 4332 | caps |= ETH_RSS_UPDATE_RAMROD_DATA_UPDATE_RSS_KEY; |
4325 | } | 4333 | } |
4326 | 4334 | ||