提交 00427a73 编写于 作者: S stephen hemminger 提交者: David S. Miller

sky2: used fixed RSS key

Rather than generating a different RSS key on each boot, just use
a predetermined value that will map same flow to same value on
every device.
Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 b1cb8256
...@@ -1275,6 +1275,14 @@ static void rx_set_checksum(struct sky2_port *sky2) ...@@ -1275,6 +1275,14 @@ static void rx_set_checksum(struct sky2_port *sky2)
? BMU_ENA_RX_CHKSUM : BMU_DIS_RX_CHKSUM); ? BMU_ENA_RX_CHKSUM : BMU_DIS_RX_CHKSUM);
} }
/*
* Fixed initial key as seed to RSS.
*/
static const uint32_t rss_init_key[10] = {
0x7c3351da, 0x51c5cf4e, 0x44adbdd1, 0xe8d38d18, 0x48897c43,
0xb1d60e7e, 0x6a3dd760, 0x01a2e453, 0x16f46f13, 0x1a0e7b30
};
/* Enable/disable receive hash calculation (RSS) */ /* Enable/disable receive hash calculation (RSS) */
static void rx_set_rss(struct net_device *dev, u32 features) static void rx_set_rss(struct net_device *dev, u32 features)
{ {
...@@ -1290,12 +1298,9 @@ static void rx_set_rss(struct net_device *dev, u32 features) ...@@ -1290,12 +1298,9 @@ static void rx_set_rss(struct net_device *dev, u32 features)
/* Program RSS initial values */ /* Program RSS initial values */
if (features & NETIF_F_RXHASH) { if (features & NETIF_F_RXHASH) {
u32 key[nkeys];
get_random_bytes(key, nkeys * sizeof(u32));
for (i = 0; i < nkeys; i++) for (i = 0; i < nkeys; i++)
sky2_write32(hw, SK_REG(sky2->port, RSS_KEY + i * 4), sky2_write32(hw, SK_REG(sky2->port, RSS_KEY + i * 4),
key[i]); rss_init_key[i]);
/* Need to turn on (undocumented) flag to make hashing work */ /* Need to turn on (undocumented) flag to make hashing work */
sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T), sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册