diff options
author | 2015-04-02 13:39:02 +0300 | |
---|---|---|
committer | 2015-04-15 16:06:19 -0400 | |
commit | 2c0107309550b332f83f8be366521557f4b3fd5a (patch) | |
tree | 1dd55899461dead8e162420a13f7579566f1b707 /drivers/infiniband/ulp/ipoib/ipoib.h | |
parent | IB/ipoib: Update broadcast record values after each successful join request (diff) | |
download | linux-2c0107309550b332f83f8be366521557f4b3fd5a.tar.gz linux-2c0107309550b332f83f8be366521557f4b3fd5a.tar.bz2 linux-2c0107309550b332f83f8be366521557f4b3fd5a.zip |
IB/ipoib: Handle QP in SQE state
As the result of a completion error the QP can moved to SQE state by
the hardware. Since it's not the Error state, there are no flushes
and hence the driver doesn't know about that.
The fix creates a task that after completion with error which is not a
flush tracks the QP state and if it is in SQE state moves it back to RTS.
Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/ulp/ipoib/ipoib.h')
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h index 769044c25ca5..2703d9a3e9b4 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib.h +++ b/drivers/infiniband/ulp/ipoib/ipoib.h @@ -299,6 +299,11 @@ struct ipoib_neigh_table { struct completion deleted; }; +struct ipoib_qp_state_validate { + struct work_struct work; + struct ipoib_dev_priv *priv; +}; + /* * Device private locking: network stack tx_lock protects members used * in TX fast path, lock protects everything else. lock nests inside |