diff options
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_verbs.h')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_verbs.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.h b/drivers/infiniband/hw/ipath/ipath_verbs.h index 7c4929f1cb5b..7064fc222727 100644 --- a/drivers/infiniband/hw/ipath/ipath_verbs.h +++ b/drivers/infiniband/hw/ipath/ipath_verbs.h | |||
@@ -173,12 +173,12 @@ struct ipath_ah { | |||
173 | * this as its vm_private_data. | 173 | * this as its vm_private_data. |
174 | */ | 174 | */ |
175 | struct ipath_mmap_info { | 175 | struct ipath_mmap_info { |
176 | struct ipath_mmap_info *next; | 176 | struct list_head pending_mmaps; |
177 | struct ib_ucontext *context; | 177 | struct ib_ucontext *context; |
178 | void *obj; | 178 | void *obj; |
179 | __u64 offset; | ||
179 | struct kref ref; | 180 | struct kref ref; |
180 | unsigned size; | 181 | unsigned size; |
181 | unsigned mmap_cnt; | ||
182 | }; | 182 | }; |
183 | 183 | ||
184 | /* | 184 | /* |
@@ -422,7 +422,7 @@ struct ipath_qp { | |||
422 | #define IPATH_S_RDMAR_PENDING 0x04 | 422 | #define IPATH_S_RDMAR_PENDING 0x04 |
423 | #define IPATH_S_ACK_PENDING 0x08 | 423 | #define IPATH_S_ACK_PENDING 0x08 |
424 | 424 | ||
425 | #define IPATH_PSN_CREDIT 2048 | 425 | #define IPATH_PSN_CREDIT 512 |
426 | 426 | ||
427 | /* | 427 | /* |
428 | * Since struct ipath_swqe is not a fixed size, we can't simply index into | 428 | * Since struct ipath_swqe is not a fixed size, we can't simply index into |
@@ -485,9 +485,10 @@ struct ipath_opcode_stats { | |||
485 | 485 | ||
486 | struct ipath_ibdev { | 486 | struct ipath_ibdev { |
487 | struct ib_device ibdev; | 487 | struct ib_device ibdev; |
488 | struct list_head dev_list; | ||
489 | struct ipath_devdata *dd; | 488 | struct ipath_devdata *dd; |
490 | struct ipath_mmap_info *pending_mmaps; | 489 | struct list_head pending_mmaps; |
490 | spinlock_t mmap_offset_lock; | ||
491 | u32 mmap_offset; | ||
491 | int ib_unit; /* This is the device number */ | 492 | int ib_unit; /* This is the device number */ |
492 | u16 sm_lid; /* in host order */ | 493 | u16 sm_lid; /* in host order */ |
493 | u8 sm_sl; | 494 | u8 sm_sl; |
@@ -734,13 +735,13 @@ int ipath_destroy_srq(struct ib_srq *ibsrq); | |||
734 | 735 | ||
735 | int ipath_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *entry); | 736 | int ipath_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *entry); |
736 | 737 | ||
737 | struct ib_cq *ipath_create_cq(struct ib_device *ibdev, int entries, | 738 | struct ib_cq *ipath_create_cq(struct ib_device *ibdev, int entries, int comp_vector, |
738 | struct ib_ucontext *context, | 739 | struct ib_ucontext *context, |
739 | struct ib_udata *udata); | 740 | struct ib_udata *udata); |
740 | 741 | ||
741 | int ipath_destroy_cq(struct ib_cq *ibcq); | 742 | int ipath_destroy_cq(struct ib_cq *ibcq); |
742 | 743 | ||
743 | int ipath_req_notify_cq(struct ib_cq *ibcq, enum ib_cq_notify notify); | 744 | int ipath_req_notify_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags notify_flags); |
744 | 745 | ||
745 | int ipath_resize_cq(struct ib_cq *ibcq, int cqe, struct ib_udata *udata); | 746 | int ipath_resize_cq(struct ib_cq *ibcq, int cqe, struct ib_udata *udata); |
746 | 747 | ||
@@ -768,6 +769,15 @@ int ipath_dealloc_fmr(struct ib_fmr *ibfmr); | |||
768 | 769 | ||
769 | void ipath_release_mmap_info(struct kref *ref); | 770 | void ipath_release_mmap_info(struct kref *ref); |
770 | 771 | ||
772 | struct ipath_mmap_info *ipath_create_mmap_info(struct ipath_ibdev *dev, | ||
773 | u32 size, | ||
774 | struct ib_ucontext *context, | ||
775 | void *obj); | ||
776 | |||
777 | void ipath_update_mmap_info(struct ipath_ibdev *dev, | ||
778 | struct ipath_mmap_info *ip, | ||
779 | u32 size, void *obj); | ||
780 | |||
771 | int ipath_mmap(struct ib_ucontext *context, struct vm_area_struct *vma); | 781 | int ipath_mmap(struct ib_ucontext *context, struct vm_area_struct *vma); |
772 | 782 | ||
773 | void ipath_no_bufs_available(struct ipath_qp *qp, struct ipath_ibdev *dev); | 783 | void ipath_no_bufs_available(struct ipath_qp *qp, struct ipath_ibdev *dev); |