From 149ad1f1852462b1d60b48bdb9ef147ee241dd59 Mon Sep 17 00:00:00 2001 From: Eldad Zinger Date: Wed, 14 Jul 2010 11:20:19 +0300 Subject: [PATCH] sdp: before activating rx_ring timer, need to check that qp is still active. Signed-off-by: Eldad Zinger --- drivers/infiniband/ulp/sdp/sdp.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index 70f67f1fce74..8ab07cd12ee3 100644 --- a/drivers/infiniband/ulp/sdp/sdp.h +++ b/drivers/infiniband/ulp/sdp/sdp.h @@ -98,13 +98,15 @@ struct sdp_skb_cb { atomic_inc(&ssk->somebody_is_doing_posts); \ /* postpone the rx_ring.timer, there is no need to enable * interrupts because there will be cq-polling. */ \ - mod_timer(&ssk->rx_ring.timer, MAX_JIFFY_OFFSET); \ + if (likely(ssk->qp_active)) \ + mod_timer(&ssk->rx_ring.timer, MAX_JIFFY_OFFSET); \ } while (0) #define posts_handler_put(ssk, intr_delay) \ do { \ sdp_do_posts(ssk); \ - if (atomic_dec_and_test(&ssk->somebody_is_doing_posts)) { \ + if (atomic_dec_and_test(&ssk->somebody_is_doing_posts) && \ + likely(ssk->qp_active)) { \ if (intr_delay) \ mod_timer(&ssk->rx_ring.timer, intr_delay); \ else \ -- 2.50.1