diff options
author | Mark Brown <broonie@kernel.org> | 2018-05-30 10:52:02 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-05-30 10:52:02 +0100 |
commit | 9e5b0b8650adec15dddcacf930b0e4aa4142680a (patch) | |
tree | 067d1c00cf9ee35cb9e08e0e5664e7763a807cf7 /drivers/infiniband/hw/hfi1/chip.c | |
parent | 08556e03ad36b2c6219aba90de88ccf58038e208 (diff) | |
parent | 5b90d559d4d5c8fd2127013666014595caa53ae2 (diff) |
Merge tag 'v4.9.104' into linux-linaro-lsk-v4.9
This is the 4.9.104 stable release
Diffstat (limited to 'drivers/infiniband/hw/hfi1/chip.c')
-rw-r--r-- | drivers/infiniband/hw/hfi1/chip.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/hfi1/chip.c b/drivers/infiniband/hw/hfi1/chip.c index 7853b0caad32..148b313c6471 100644 --- a/drivers/infiniband/hw/hfi1/chip.c +++ b/drivers/infiniband/hw/hfi1/chip.c @@ -5860,6 +5860,7 @@ static void is_sendctxt_err_int(struct hfi1_devdata *dd, u64 status; u32 sw_index; int i = 0; + unsigned long irq_flags; sw_index = dd->hw_to_sw[hw_context]; if (sw_index >= dd->num_send_contexts) { @@ -5869,10 +5870,12 @@ static void is_sendctxt_err_int(struct hfi1_devdata *dd, return; } sci = &dd->send_contexts[sw_index]; + spin_lock_irqsave(&dd->sc_lock, irq_flags); sc = sci->sc; if (!sc) { dd_dev_err(dd, "%s: context %u(%u): no sc?\n", __func__, sw_index, hw_context); + spin_unlock_irqrestore(&dd->sc_lock, irq_flags); return; } @@ -5894,6 +5897,7 @@ static void is_sendctxt_err_int(struct hfi1_devdata *dd, */ if (sc->type != SC_USER) queue_work(dd->pport->hfi1_wq, &sc->halt_work); + spin_unlock_irqrestore(&dd->sc_lock, irq_flags); /* * Update the counters for the corresponding status bits. |