mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 22:02:28 +00:00
nfp: default to chained metadata prepend format
ABI 4.x introduced the chained metadata format and made it the
only one possible. There are cases, however, where the old
format is preferred - mostly to make interoperation with VFs
using ABI 3.x easier for the datapath. In ABI 5.x we allowed
for more flexibility by selecting the metadata format based
on capabilities. The default was left to non-chained.
In case of fallback traffic, there is no capability telling the
driver there may be chained metadata. With a very stripped-
-down FW the default old metadata format would be selected
making the driver drop all fallback traffic.
This patch changes the default selection in the driver. It
should not hurt with old firmwares, because if they don't
advertise RSS they will not produce metadata anyway. New
firmwares advertising ABI 5.x, however, can depend on the
driver defaulting to chained format.
Fixes: f9380629fa
("nfp: advertise support for NFD ABI 0.5")
Suggested-by: Michael Rapson <michael.rapson@netronome.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
cb2cda4848
commit
64a919a944
@ -3719,10 +3719,17 @@ int nfp_net_init(struct nfp_net *nn)
|
||||
nn->cap = nn_readl(nn, NFP_NET_CFG_CAP);
|
||||
nn->max_mtu = nn_readl(nn, NFP_NET_CFG_MAX_MTU);
|
||||
|
||||
/* Chained metadata is signalled by capabilities except in version 4 */
|
||||
/* ABI 4.x and ctrl vNIC always use chained metadata, in other cases
|
||||
* we allow use of non-chained metadata if RSS(v1) is the only
|
||||
* advertised capability requiring metadata.
|
||||
*/
|
||||
nn->dp.chained_metadata_format = nn->fw_ver.major == 4 ||
|
||||
!nn->dp.netdev ||
|
||||
!(nn->cap & NFP_NET_CFG_CTRL_RSS) ||
|
||||
nn->cap & NFP_NET_CFG_CTRL_CHAIN_META;
|
||||
/* RSS(v1) uses non-chained metadata format, except in ABI 4.x where
|
||||
* it has the same meaning as RSSv2.
|
||||
*/
|
||||
if (nn->dp.chained_metadata_format && nn->fw_ver.major != 4)
|
||||
nn->cap &= ~NFP_NET_CFG_CTRL_RSS;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user