diff options
author | Santosh Shilimkar <santosh.shilimkar@oracle.com> | 2015-09-19 20:01:09 +0200 |
---|---|---|
committer | Santosh Shilimkar <santosh.shilimkar@oracle.com> | 2015-10-05 20:19:01 +0200 |
commit | 9441c973e1e0e9885537a3a86020fe8e121e9a98 (patch) | |
tree | 08ea116b4ab083056f324952c2392e1be7cf4f69 /net/rds/ib_cm.c | |
parent | RDS: IB: split send completion handling and do batch ack (diff) | |
download | linux-9441c973e1e0e9885537a3a86020fe8e121e9a98.tar.xz linux-9441c973e1e0e9885537a3a86020fe8e121e9a98.zip |
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) struct rds_ib_device *rds_ibdev = ic->rds_ibdev; struct rds_ib_ack_state state; - BUG_ON(!rds_ibdev); + if (!rds_ibdev) + rds_conn_drop(conn); rds_ib_stats_inc(s_ib_tasklet_call); |