diff options
author | Alexander Schmidt <alexs@linux.vnet.ibm.com> | 2008-09-20 20:05:21 -0700 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-09-20 20:05:21 -0700 |
commit | b9012e0a4255c93e1d81f1ccee591de6414b5955 (patch) | |
tree | f96df62a968eab98722256251914070fa7bb0c2c /drivers/infiniband/hw/ehca/ehca_iverbs.h | |
parent | 9824b8f11373b0df806c135a342da9319ef1d893 (diff) |
IB/ehca: Generate flush status CQ entries
When a QP goes into error state, it is required that CQ entries with a
flush error status are delivered to the application for any
outstanding work requests. eHCA does not do this in hardware, so this
patch adds software flush CQE generation to the ehca driver.
Whenever a QP gets into error state, it is added to the QP error list
of its respective CQ. If the error QP list of a CQ is not empty,
poll_cq() generates flush CQEs before polling the actual CQ.
Signed-off-by: Alexander Schmidt <alexs@linux.vnet.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ehca/ehca_iverbs.h')
-rw-r--r-- | drivers/infiniband/hw/ehca/ehca_iverbs.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_iverbs.h b/drivers/infiniband/hw/ehca/ehca_iverbs.h index a8a2ea585d2..8f7f282ead6 100644 --- a/drivers/infiniband/hw/ehca/ehca_iverbs.h +++ b/drivers/infiniband/hw/ehca/ehca_iverbs.h @@ -197,6 +197,8 @@ void ehca_poll_eqs(unsigned long data); int ehca_calc_ipd(struct ehca_shca *shca, int port, enum ib_rate path_rate, u32 *ipd); +void ehca_add_to_err_list(struct ehca_qp *qp, int on_sq); + #ifdef CONFIG_PPC_64K_PAGES void *ehca_alloc_fw_ctrlblock(gfp_t flags); void ehca_free_fw_ctrlblock(void *ptr); |