ethdev: synchronize port allocation
authorMatan Azrad <matan@mellanox.com>
Mon, 22 Jan 2018 16:38:20 +0000 (16:38 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 31 Jan 2018 19:49:02 +0000 (20:49 +0100)
commit84934303a17c4844d662ad08d9f4cec74d11bce6
tree9c36dd4de0ef65943b766ff6be8f133014849635
parent5b7ba31148a8bd4d21036a919787a6d61b628e30
ethdev: synchronize port allocation

Ethernet port allocation was not thread safe, means 2 threads which tried
to allocate a new port at the same time might get an identical port
identifier and caused to memory overwrite.
Actually, all the port configurations were not thread safe from ethdev
point of view.

The port ownership mechanism added to the ethdev is a good point to
redefine the synchronization rules in ethdev:

1. The port allocation and port release synchronization will be
   managed by ethdev.
2. The port usage synchronization will be managed by the port owner.
3. The port ownership synchronization will be managed by ethdev.

Add port allocation synchronization to complete the new rules.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_ether/rte_ethdev.c