net/sfc: fix device reconfigure
Device reconfigure should be done without close which releases all transmit and receive queue. ethdev API assumes that previously setup queues (minimum from configured before and now) are kept across device reconfigure. Fixes: aaa3f5f0f79d ("net/sfc: add configure and close stubs") Cc: stable@dpdk.org Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@solarflare.com>
This commit is contained in:
parent
09a46bf964
commit
005870b4d3
@ -398,7 +398,8 @@ sfc_configure(struct sfc_adapter *sa)
|
||||
|
||||
SFC_ASSERT(sfc_adapter_is_locked(sa));
|
||||
|
||||
SFC_ASSERT(sa->state == SFC_ADAPTER_INITIALIZED);
|
||||
SFC_ASSERT(sa->state == SFC_ADAPTER_INITIALIZED ||
|
||||
sa->state == SFC_ADAPTER_CONFIGURED);
|
||||
sa->state = SFC_ADAPTER_CONFIGURING;
|
||||
|
||||
rc = sfc_check_conf(sa);
|
||||
|
@ -64,20 +64,20 @@ extern "C" {
|
||||
* V |
|
||||
* +---------------+------------+
|
||||
* | INITIALIZED |
|
||||
* +---------------+<-----------+
|
||||
* |.dev_configure |
|
||||
* V |
|
||||
* +---------------+ |
|
||||
* | CONFIGURING |------------^
|
||||
* +---------------+ failed |
|
||||
* |success |
|
||||
* | +---------------+
|
||||
* | | CLOSING |
|
||||
* | +---------------+
|
||||
* | ^
|
||||
* V |.dev_close
|
||||
* +---------------+------------+
|
||||
* | CONFIGURED |
|
||||
* +---------------+<-----------<---------------+
|
||||
* |.dev_configure | |
|
||||
* V |failed |
|
||||
* +---------------+------------+ |
|
||||
* | CONFIGURING | |
|
||||
* +---------------+----+ |
|
||||
* |success | |
|
||||
* | | +---------------+
|
||||
* | | | CLOSING |
|
||||
* | | +---------------+
|
||||
* | | ^
|
||||
* V |.dev_configure |
|
||||
* +---------------+----+ |.dev_close
|
||||
* | CONFIGURED |----------------------------+
|
||||
* +---------------+<-----------+
|
||||
* |.dev_start |
|
||||
* V |
|
||||
|
@ -192,8 +192,6 @@ sfc_dev_configure(struct rte_eth_dev *dev)
|
||||
sfc_adapter_lock(sa);
|
||||
switch (sa->state) {
|
||||
case SFC_ADAPTER_CONFIGURED:
|
||||
sfc_close(sa);
|
||||
SFC_ASSERT(sa->state == SFC_ADAPTER_INITIALIZED);
|
||||
/* FALLTHROUGH */
|
||||
case SFC_ADAPTER_INITIALIZED:
|
||||
rc = sfc_configure(sa);
|
||||
|
Loading…
x
Reference in New Issue
Block a user