diff options
author | Dean Luick | 2015-10-26 15:28:43 +0100 |
---|---|---|
committer | Greg Kroah-Hartman | 2015-10-27 09:45:51 +0100 |
commit | b77d713a310b5c6eba13e9c394bcf0b085c4a49d (patch) | |
tree | 482853a8a51b68e3c739a7e375ff1df9a22c22ea /drivers/staging/rdma/hfi1/mad.c | |
parent | staging/rdma/hfi1: Increase SDMA descriptor queue size (diff) | |
download | kernel-qcow2-linux-b77d713a310b5c6eba13e9c394bcf0b085c4a49d.tar.gz kernel-qcow2-linux-b77d713a310b5c6eba13e9c394bcf0b085c4a49d.tar.xz kernel-qcow2-linux-b77d713a310b5c6eba13e9c394bcf0b085c4a49d.zip |
staging/rdma/hfi1: Add irqsaves in the packet processing path
In preparation for threading the receive interrupt, add irqsaves in the packet
processing path.
When the receive interrupt is threaded, the packet processing path is no longer
guaranteed to have IRQs disabled. Add irqsaves where needed on several locks
in the packet processing path. Anything that did not have an obvious, "close"
irqsave in its caller is a candidate.
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rdma/hfi1/mad.c')
-rw-r--r-- | drivers/staging/rdma/hfi1/mad.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/rdma/hfi1/mad.c b/drivers/staging/rdma/hfi1/mad.c index 1de282c989b0..32f703736185 100644 --- a/drivers/staging/rdma/hfi1/mad.c +++ b/drivers/staging/rdma/hfi1/mad.c @@ -3257,7 +3257,7 @@ static int __subn_get_opa_hfi1_cong_log(struct opa_smp *smp, u32 am, return reply((struct ib_mad_hdr *)smp); } - spin_lock(&ppd->cc_log_lock); + spin_lock_irq(&ppd->cc_log_lock); cong_log->log_type = OPA_CC_LOG_TYPE_HFI; cong_log->congestion_flags = 0; @@ -3300,7 +3300,7 @@ static int __subn_get_opa_hfi1_cong_log(struct opa_smp *smp, u32 am, sizeof(ppd->threshold_cong_event_map)); ppd->threshold_event_counter = 0; - spin_unlock(&ppd->cc_log_lock); + spin_unlock_irq(&ppd->cc_log_lock); if (resp_len) *resp_len += sizeof(struct opa_hfi1_cong_log); |