diff options
author | Santosh Shilimkar <santosh.shilimkar@oracle.com> | 2015-09-19 14:01:09 -0400 |
---|---|---|
committer | Santosh Shilimkar <santosh.shilimkar@oracle.com> | 2015-10-05 14:19:01 -0400 |
commit | 9441c973e1e0e9885537a3a86020fe8e121e9a98 (patch) | |
tree | 08ea116b4ab083056f324952c2392e1be7cf4f69 /net/rds/ib_cm.c | |
parent | 0c28c04500cf956c82d542c199f5bddabd590af3 (diff) |
RDS: IB: handle rds_ibdev release case instead of crashing the kernel
Just in case we are still handling the QP receive completion while the
rds_ibdev is released, drop the connection instead of crashing the kernel.
Signed-off-by: Santosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Diffstat (limited to 'net/rds/ib_cm.c')
-rw-r--r-- | net/rds/ib_cm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c index 8f51d0d26578..2b2370e7f356 100644 --- a/net/rds/ib_cm.c +++ b/net/rds/ib_cm.c | |||
@@ -285,7 +285,8 @@ static void rds_ib_tasklet_fn_recv(unsigned long data) | |||
285 | struct rds_ib_device *rds_ibdev = ic->rds_ibdev; | 285 | struct rds_ib_device *rds_ibdev = ic->rds_ibdev; |
286 | struct rds_ib_ack_state state; | 286 | struct rds_ib_ack_state state; |
287 | 287 | ||
288 | BUG_ON(!rds_ibdev); | 288 | if (!rds_ibdev) |
289 | rds_conn_drop(conn); | ||
289 | 290 | ||
290 | rds_ib_stats_inc(s_ib_tasklet_call); | 291 | rds_ib_stats_inc(s_ib_tasklet_call); |
291 | 292 | ||