diff options
author | Jim Snow | 2016-01-12 00:32:21 +0100 |
---|---|---|
committer | Doug Ledford | 2016-03-11 02:37:04 +0100 |
commit | fb9036dd8cd85533456aec43d7892b707561eba8 (patch) | |
tree | 9b6a05c2b3f567618a513833d2f5b5c1dc12627f /drivers/staging/rdma/hfi1/chip.h | |
parent | staging/hfi1: Fix Xmit Wait calculation (diff) | |
download | kernel-qcow2-linux-fb9036dd8cd85533456aec43d7892b707561eba8.tar.gz kernel-qcow2-linux-fb9036dd8cd85533456aec43d7892b707561eba8.tar.xz kernel-qcow2-linux-fb9036dd8cd85533456aec43d7892b707561eba8.zip |
staging/hfi1: check for ARMED->ACTIVE change in recv int
The link state will transition from ARMED to ACTIVE when a non-SC15
packet arrives, but the driver might not notice the change. With this
fix, if the slowpath receive interrupt handler sees a non-SC15 packet
while in the ARMED state, we queue work to call linkstate_active_work
from process context to promote it to ACTIVE.
Reviewed-by: Dean Luick <dean.luick@intel.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Jim Snow <jim.m.snow@intel.com>
Signed-off-by: Brendan Cunningham <brendan.cunningham@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/staging/rdma/hfi1/chip.h')
-rw-r--r-- | drivers/staging/rdma/hfi1/chip.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/rdma/hfi1/chip.h b/drivers/staging/rdma/hfi1/chip.h index b46ef6675d45..78ba42567f2b 100644 --- a/drivers/staging/rdma/hfi1/chip.h +++ b/drivers/staging/rdma/hfi1/chip.h @@ -690,6 +690,8 @@ u64 read_dev_cntr(struct hfi1_devdata *dd, int index, int vl); u64 write_dev_cntr(struct hfi1_devdata *dd, int index, int vl, u64 data); u64 read_port_cntr(struct hfi1_pportdata *ppd, int index, int vl); u64 write_port_cntr(struct hfi1_pportdata *ppd, int index, int vl, u64 data); +u32 read_logical_state(struct hfi1_devdata *dd); +void force_recv_intr(struct hfi1_ctxtdata *rcd); /* Per VL indexes */ enum { |