Hi Linus, This is the first pull request of the 4.9 merge window for the RDMA subsystem. It is only the hfi1 driver. It had dependencies on code that only landed late in the 4.7-rc cycle (around 4.7-rc7), so putting this with my other for-next code would have create an ugly merge of lot of 4.7-rc stuff. For that reason, it's being submitted individually. It's been through 0day and linux-next. I'll be sending a different topic branch through linux-next today and will make a new pull request once you've picked this one up. I expect there will be three or four pull requests this cycle as I'm somewhat splitting things up into these broad groups: 1) hfi1 driver update (needed late 4.7-rc code) 2) hns-roce driver (new driver, still waiting on last few patch approvals from netdev@) 3) rest of the core stack (needs to wait until after DaveM's tree has been pulled because it needed to be based on his net-next tree from around 4.7-rc4) 4) there are four other brand new drivers on the list undergoing review, and it's possible some of them might complete review in time to be sent, if so, they will be separate pull requests Here's the boilerplate for this pull request: The following changes since commit e4618d40eb3dc1a6d1f55f7150ea25bb23ab410a: IB/rdmavt: Don't vfree a kzalloc'ed memory region (2016-09-16 14:14:23 -0400) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git tags/for-linus for you to fetch changes up to 61347fa6087884305ea4a3a04501839fdb68dc76: IB/rdmavt: Trivial function comment corrected. (2016-10-03 10:55:27 -0400) ---------------------------------------------------------------- First pull request of the 4.9 merge window - Updates to hfi1 driver ---------------------------------------------------------------- Dean Luick (6): IB/hfi1: Move serdes tune inside link start function IB/hfi1: Extend i2c timeout IB/hfi1: Act on external device timeout IB/hfi1: Restore EPROM read ability IB/hfi1: Add ability to read platform config from the EPROM IB/hfi1: Use EPROM platform configuration read Dennis Dalessandro (3): IB/qib: Remove qpt_mask global IB/hfi1: Cleanup tasklet refs in comments IB/hfi1: Remove unused variable from devdata Harish Chegondi (2): IB/hfi1: Fix the count of user packets submitted to an SDMA engine IB/hfi1: Adjust hardware buffering parameter Jakub Pawlak (1): IB/hfi1: Fix resource release in context allocation Jianxin Xiong (2): IB/hfi1: Increase default settings of max_cqes and max_qps IB/hfi1: Update SMA ingress checks for response packets Mike Marciniszyn (12): IB/rdmavt: Add functions to get and release QP references IB/rdmavt, IB/qib, IB/hfi1: Use new QP put get routines IB/core: Add ib headers for general use IB/qib,IB/hfi: Use core common header file IB/rdmavt: Correct sparse annotation IB/hfi1: Move iowait_init() to priv allocate IB/rdmavt: Move reset calldown to reset path IB/rdmavt: Add qp init function IB/rdmavt, IB/hfi1: Add lockdep asserts for lock debug IB/hfi1: Consolidate pio control masks into single definition IB/hfi1: Fix defered ack race with qp destroy IB/hfi1: Fix trace of atomic ack Parav Pandit (1): IB/rdmavt: Trivial function comment corrected. Sebastian Sanchez (3): IB/hfi1: Remove filtering of Set(PkeyTable) in HFI SMA IB/hfi1: Do not read more than a SGE length IB/hfi1: Combine shift copy and byte copy for SGE reads Tadeusz Struk (6): IB/hfi1: Fix locking scheme for affinity settings IB/hfi1: Add sysfs interface for affinity setup IB/hfi1: Add a new VL sysfs attribute for sdma engines IB/hfi1: Add irq affinity notification handler IB/hfi1: Add new debugfs sdma_cpu_list file IB/hfi1: Document new sysfs entries for hfi1 driver Tymoteusz Kielan (1): IB/hfi1: Fix user-space buffers mapping with IOMMU enabled Documentation/infiniband/sysfs.txt | 30 +++ drivers/infiniband/hw/hfi1/affinity.c | 203 ++++++++++++---- drivers/infiniband/hw/hfi1/affinity.h | 3 +- drivers/infiniband/hw/hfi1/chip.c | 57 +++-- drivers/infiniband/hw/hfi1/chip.h | 8 +- drivers/infiniband/hw/hfi1/common.h | 8 - drivers/infiniband/hw/hfi1/debugfs.c | 38 +++ drivers/infiniband/hw/hfi1/driver.c | 35 ++- drivers/infiniband/hw/hfi1/eprom.c | 185 +++++++++++++++ drivers/infiniband/hw/hfi1/eprom.h | 4 +- drivers/infiniband/hw/hfi1/file_ops.c | 59 +++-- drivers/infiniband/hw/hfi1/hfi.h | 22 +- drivers/infiniband/hw/hfi1/init.c | 45 ++-- drivers/infiniband/hw/hfi1/mad.c | 7 - drivers/infiniband/hw/hfi1/pio.c | 20 +- drivers/infiniband/hw/hfi1/pio.h | 2 +- drivers/infiniband/hw/hfi1/pio_copy.c | 246 +++++-------------- drivers/infiniband/hw/hfi1/platform.c | 32 ++- drivers/infiniband/hw/hfi1/qp.c | 32 +-- drivers/infiniband/hw/hfi1/qsfp.c | 2 +- drivers/infiniband/hw/hfi1/rc.c | 146 ++++++------ drivers/infiniband/hw/hfi1/ruc.c | 10 +- drivers/infiniband/hw/hfi1/sdma.c | 377 +++++++++++++++++++++++++++++- drivers/infiniband/hw/hfi1/sdma.h | 13 +- drivers/infiniband/hw/hfi1/sysfs.c | 103 +++++++- drivers/infiniband/hw/hfi1/trace.c | 31 +-- drivers/infiniband/hw/hfi1/trace_ctxts.h | 13 +- drivers/infiniband/hw/hfi1/trace_ibhdrs.h | 14 +- drivers/infiniband/hw/hfi1/trace_rx.h | 4 +- drivers/infiniband/hw/hfi1/uc.c | 15 +- drivers/infiniband/hw/hfi1/ud.c | 61 +++-- drivers/infiniband/hw/hfi1/user_sdma.c | 40 ++-- drivers/infiniband/hw/hfi1/verbs.c | 60 +++-- drivers/infiniband/hw/hfi1/verbs.h | 93 +------- drivers/infiniband/hw/hfi1/verbs_txreq.c | 2 +- drivers/infiniband/hw/qib/qib.h | 2 +- drivers/infiniband/hw/qib/qib_driver.c | 7 +- drivers/infiniband/hw/qib/qib_iba7322.c | 2 +- drivers/infiniband/hw/qib/qib_qp.c | 13 +- drivers/infiniband/hw/qib/qib_rc.c | 73 +++--- drivers/infiniband/hw/qib/qib_ruc.c | 4 +- drivers/infiniband/hw/qib/qib_uc.c | 6 +- drivers/infiniband/hw/qib/qib_ud.c | 6 +- drivers/infiniband/hw/qib/qib_verbs.c | 16 +- drivers/infiniband/hw/qib/qib_verbs.h | 94 +------- drivers/infiniband/sw/rdmavt/qp.c | 119 ++++++---- include/rdma/ib_hdrs.h | 178 ++++++++++++++ include/rdma/rdmavt_qp.h | 19 ++ 48 files changed, 1660 insertions(+), 899 deletions(-) create mode 100644 include/rdma/ib_hdrs.h -- Doug Ledford GPG Key ID: 0E572FDD