diff options
author | Ingo Molnar <mingo@kernel.org> | 2020-03-08 09:57:58 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2020-03-08 09:57:58 +0100 |
commit | 6120681bdf1a1c648e8c555704b71e04abe2e899 (patch) | |
tree | a8a3f55c4ed771dc57082d8af2f8d28ab6e5d341 /drivers/infiniband/hw/hfi1 | |
parent | Merge tag 'efi-next' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi... (diff) | |
parent | efi: Add a sanity check to efivar_store_raw() (diff) | |
download | linux-6120681bdf1a1c648e8c555704b71e04abe2e899.tar.xz linux-6120681bdf1a1c648e8c555704b71e04abe2e899.zip |
Merge branch 'efi/urgent' into efi/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/infiniband/hw/hfi1')
-rw-r--r-- | drivers/infiniband/hw/hfi1/verbs.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/hfi1/verbs.c b/drivers/infiniband/hw/hfi1/verbs.c index 089e201d7550..2f6323ad9c59 100644 --- a/drivers/infiniband/hw/hfi1/verbs.c +++ b/drivers/infiniband/hw/hfi1/verbs.c @@ -515,10 +515,11 @@ static inline void hfi1_handle_packet(struct hfi1_packet *packet, opa_get_lid(packet->dlid, 9B)); if (!mcast) goto drop; + rcu_read_lock(); list_for_each_entry_rcu(p, &mcast->qp_list, list) { packet->qp = p->qp; if (hfi1_do_pkey_check(packet)) - goto drop; + goto unlock_drop; spin_lock_irqsave(&packet->qp->r_lock, flags); packet_handler = qp_ok(packet); if (likely(packet_handler)) @@ -527,6 +528,7 @@ static inline void hfi1_handle_packet(struct hfi1_packet *packet, ibp->rvp.n_pkt_drops++; spin_unlock_irqrestore(&packet->qp->r_lock, flags); } + rcu_read_unlock(); /* * Notify rvt_multicast_detach() if it is waiting for us * to finish. |