IB/uverbs: Release event file reference on ib_uverbs_create_cq() error
[linux-block.git] / drivers / infiniband / core / mad_priv.h
index 568da10b05ab28675dff4697ac35dd2f9cd51282..570f78682af34da1c36fc963ddbe8cbfde2d7a92 100644 (file)
@@ -40,8 +40,8 @@
 #include <linux/pci.h>
 #include <linux/kthread.h>
 #include <linux/workqueue.h>
-#include <ib_mad.h>
-#include <ib_smi.h>
+#include <rdma/ib_mad.h>
+#include <rdma/ib_smi.h>
 
 
 #define PFX "ib_mad: "
@@ -118,10 +118,11 @@ struct ib_mad_send_wr_private {
        struct ib_mad_list_head mad_list;
        struct list_head agent_list;
        struct ib_mad_agent_private *mad_agent_priv;
+       struct ib_mad_send_buf send_buf;
+       DECLARE_PCI_UNMAP_ADDR(mapping)
        struct ib_send_wr send_wr;
        struct ib_sge sg_list[IB_MAD_SEND_REQ_MAX_SG];
-       u64 wr_id;                      /* client WR ID */
-       u64 tid;
+       __be64 tid;
        unsigned long timeout;
        int retries;
        int retry;
@@ -141,10 +142,7 @@ struct ib_mad_local_private {
        struct list_head completion_list;
        struct ib_mad_private *mad_priv;
        struct ib_mad_agent_private *recv_mad_agent;
-       struct ib_send_wr send_wr;
-       struct ib_sge sg_list[IB_MAD_SEND_REQ_MAX_SG];
-       u64 wr_id;                      /* client WR ID */
-       u64 tid;
+       struct ib_mad_send_wr_private *mad_send_wr;
 };
 
 struct ib_mad_mgmt_method_table {
@@ -210,7 +208,7 @@ extern kmem_cache_t *ib_mad_cache;
 int ib_send_mad(struct ib_mad_send_wr_private *mad_send_wr);
 
 struct ib_mad_send_wr_private *
-ib_find_send_mad(struct ib_mad_agent_private *mad_agent_priv, u64 tid);
+ib_find_send_mad(struct ib_mad_agent_private *mad_agent_priv, __be64 tid);
 
 void ib_mad_complete_send_wr(struct ib_mad_send_wr_private *mad_send_wr,
                             struct ib_mad_send_wc *mad_send_wc);