nfp: don't assume RSS and IRQ moderation are always enabled

Even if capability for RSS and IRQ moderation are present we may
have not initialized them for control vNIC.  Depend on selected
features mask (ctrl) rather than capabilities (cap) to determine
which features should be enabled.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Jakub Kicinski 2017-05-15 17:55:18 -07:00 committed by David S. Miller
parent 28063be693
commit ad50451e9a

View file

@ -2201,17 +2201,15 @@ static int nfp_net_set_config_and_enable(struct nfp_net *nn)
new_ctrl = nn->dp.ctrl; new_ctrl = nn->dp.ctrl;
if (nn->cap & NFP_NET_CFG_CTRL_RSS) { if (nn->dp.ctrl & NFP_NET_CFG_CTRL_RSS) {
nfp_net_rss_write_key(nn); nfp_net_rss_write_key(nn);
nfp_net_rss_write_itbl(nn); nfp_net_rss_write_itbl(nn);
nn_writel(nn, NFP_NET_CFG_RSS_CTRL, nn->rss_cfg); nn_writel(nn, NFP_NET_CFG_RSS_CTRL, nn->rss_cfg);
update |= NFP_NET_CFG_UPDATE_RSS; update |= NFP_NET_CFG_UPDATE_RSS;
} }
if (nn->cap & NFP_NET_CFG_CTRL_IRQMOD) { if (nn->dp.ctrl & NFP_NET_CFG_CTRL_IRQMOD) {
nfp_net_coalesce_write_cfg(nn); nfp_net_coalesce_write_cfg(nn);
new_ctrl |= NFP_NET_CFG_CTRL_IRQMOD;
update |= NFP_NET_CFG_UPDATE_IRQMOD; update |= NFP_NET_CFG_UPDATE_IRQMOD;
} }