RDS: IB: handle rds_ibdev release case instead of crashing the kernel
authorSantosh Shilimkar <santosh.shilimkar@oracle.com>
Sat, 19 Sep 2015 18:01:09 +0000 (14:01 -0400)
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>
Mon, 5 Oct 2015 18:19:01 +0000 (11:19 -0700)
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>
net/rds/ib_cm.c

index 8f51d0d26578ec02908380a06d35ad0c574082c5..2b2370e7f356f5db4d23df09356796d0649ee063 100644 (file)
@@ -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);