From: Eldad Zinger Date: Mon, 5 Jul 2010 11:46:04 +0000 (+0300) Subject: sdp: rx/tx tasklets should be properly killed when destroying qp. X-Git-Tag: v4.1.12-92~264^2~5^2~149 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=96f309272cd6c9b8218b9b38fc82168d38b3183c;p=users%2Fjedix%2Flinux-maple.git sdp: rx/tx tasklets should be properly killed when destroying qp. Signed-off-by: Eldad Zinger --- diff --git a/drivers/infiniband/ulp/sdp/sdp_rx.c b/drivers/infiniband/ulp/sdp/sdp_rx.c index f566522c24bca..9e0e9426b704a 100644 --- a/drivers/infiniband/ulp/sdp/sdp_rx.c +++ b/drivers/infiniband/ulp/sdp/sdp_rx.c @@ -1001,5 +1001,9 @@ void sdp_rx_ring_destroy(struct sdp_sock *ssk) } } + tasklet_kill(&ssk->rx_ring.tasklet); + /* rx_cq is destroyed, so no more rx_irq, so no one will schedule this + * tasklet. */ + SDP_WARN_ON(ring_head(ssk->rx_ring) != ring_tail(ssk->rx_ring)); } diff --git a/drivers/infiniband/ulp/sdp/sdp_tx.c b/drivers/infiniband/ulp/sdp/sdp_tx.c index af93cacd4f363..e52f0382addb3 100644 --- a/drivers/infiniband/ulp/sdp/sdp_tx.c +++ b/drivers/infiniband/ulp/sdp/sdp_tx.c @@ -535,5 +535,9 @@ void sdp_tx_ring_destroy(struct sdp_sock *ssk) } } + tasklet_kill(&ssk->tx_ring.tasklet); + /* tx_cq is destroyed, so no more tx_irq, so no one will schedule this + * tasklet. */ + SDP_WARN_ON(ring_head(ssk->tx_ring) != ring_tail(ssk->tx_ring)); }