net/mlx4: fix Rx after updating number of queues
authorAdrien Mazarguil <adrien.mazarguil@6wind.com>
Tue, 31 Oct 2017 10:31:04 +0000 (11:31 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 1 Nov 2017 21:17:06 +0000 (22:17 +0100)
commita9b3568e73c197a2e87223d62b666adbcefe6c1b
tree4e53bc207ca625fd5efea11009a594bdfcb5f70c
parentd8a4baafe8756ce95e12deac89599d74e53e27a1
net/mlx4: fix Rx after updating number of queues

When not in isolated mode, internal flow rules are automatically
maintained by the PMD to receive traffic according to global device
settings (MAC, VLAN, promiscuous mode and so on).

Since RSS support was added to the mix, it must also check whether Rx
queue configuration has changed when refreshing flow rules to prevent
the following from happening:

- With a smaller number of Rx queues, traffic is implicitly dropped
  since the existing RSS context cannot be re-applied.
- With a larger number of Rx queues, traffic remains balanced within the
  original (smaller) set of queues.

One workaround before this commit was to temporarily enter/leave
isolated mode to make it regenerate internal flow rules.

Fixes: 7d8675956f57 ("net/mlx4: add RSS support outside flow API")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
drivers/net/mlx4/mlx4_flow.c