summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDennis Dalessandro <dennis.dalessandro@intel.com>2016-01-06 19:04:23 +0100
committerDoug Ledford <dledford@redhat.com>2016-03-11 02:37:14 +0100
commitb036db83c0ec8d1e81df19410a494be4cfe0b186 (patch)
tree230d9f953db6d1d5706dbf0745b477032770a91a /include
parentIB/rdmavt: Add an ibport data structure to rdmavt (diff)
downloadlinux-b036db83c0ec8d1e81df19410a494be4cfe0b186.tar.xz
linux-b036db83c0ec8d1e81df19410a494be4cfe0b186.zip
IB/rdmavt: Add driver notification for new AH
Drivers may need to do some work once an address handle has been created. Add a driver function for this purpose. Reviewed-by: Ira Weiny <ira.weiny@intel.com> Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Reviewed-by: Harish Chegondi <harish.chegondi@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/rdma/rdma_vt.h41
1 files changed, 25 insertions, 16 deletions
diff --git a/include/rdma/rdma_vt.h b/include/rdma/rdma_vt.h
index a3d6a5bd0c02..ef66d2b0ec37 100644
--- a/include/rdma/rdma_vt.h
+++ b/include/rdma/rdma_vt.h
@@ -467,9 +467,21 @@ struct rvt_driver_params {
int nports;
};
-/*
- * Functions that drivers are required to support
- */
+/* Protection domain */
+struct rvt_pd {
+ struct ib_pd ibpd;
+ int user; /* non-zero if created from user space */
+};
+
+/* Address handle */
+struct rvt_ah {
+ struct ib_ah ibah;
+ struct ib_ah_attr attr;
+ atomic_t refcount;
+ u8 vl;
+ u8 log_pmtu;
+};
+
struct rvt_dev_info;
struct rvt_driver_provided {
/*
@@ -478,23 +490,20 @@ struct rvt_driver_provided {
* instead drivers are responsible for setting the correct callback for
* this.
*/
+
+ /* -------------------*/
+ /* Required functions */
+ /* -------------------*/
int (*port_callback)(struct ib_device *, u8, struct kobject *);
const char * (*get_card_name)(struct rvt_dev_info *rdi);
struct pci_dev * (*get_pci_dev)(struct rvt_dev_info *rdi);
- int (*check_ah)(struct ib_device *, struct ib_ah_attr *);
-};
-/* Protection domain */
-struct rvt_pd {
- struct ib_pd ibpd;
- int user; /* non-zero if created from user space */
-};
-
-/* Address handle */
-struct rvt_ah {
- struct ib_ah ibah;
- struct ib_ah_attr attr;
- atomic_t refcount;
+ /*--------------------*/
+ /* Optional functions */
+ /*--------------------*/
+ int (*check_ah)(struct ib_device *, struct ib_ah_attr *);
+ void (*notify_new_ah)(struct ib_device *, struct ib_ah_attr *,
+ struct rvt_ah *);
};
struct rvt_dev_info {