Thread (1 message) 1 message, 1 author, 2017-10-09

Re: [PATCH v2 net-next 06/12] qed: Add LL2 slowpath handling

From: David Miller <hidden>
Date: 2017-10-09 04:40:28
Also in: linux-rdma

From: "Kalderon, Michal" <Michal.Kalderon-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>
Date: Tue, 3 Oct 2017 18:05:32 +0000
From: David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Sent: Tuesday, October 3, 2017 8:17 PM
quoted
quoted
@@ -423,6 +423,41 @@ static void qed_ll2_rxq_parse_reg(struct qed_hwfn *p_hwfn,
 }

 static int
+qed_ll2_handle_slowpath(struct qed_hwfn *p_hwfn,
+                     struct qed_ll2_info *p_ll2_conn,
+                     union core_rx_cqe_union *p_cqe,
+                     unsigned long *p_lock_flags)
+{
...
quoted
+     spin_unlock_irqrestore(&p_rx->lock, *p_lock_flags);
+
You can't drop this lock.

Another thread can enter the loop of our caller and process RX queue
entries, then we would return from here and try to process the same
entries again.
The lock is there to synchronize access to chains between qed_ll2_rxq_completion
and qed_ll2_post_rx_buffer. qed_ll2_rxq_completion can't be called from
different threads, the light l2 uses the single sp status block we have.
The reason we release the lock is to avoid a deadlock where as a result of calling
upper-layer driver it will potentially post additional rx-buffers.
Ok, please repost this patch series.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help