]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sdp: fix for brutal device removing
authorEldad Zinger <eldadz@mellanox.co.il>
Sun, 18 Apr 2010 11:34:33 +0000 (14:34 +0300)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 6 Oct 2015 12:04:53 +0000 (05:04 -0700)
Kernel always crashed in the following test case:
user program: socket+bind+listen+accept. socket accpted.
shell: rmmod mlx4_ib
user program: close <<< CRASH
The fix closes any socket that its ib_device is the device being removed.

Signed-off-by: Eldad Zinger <eldadz@mellanox.co.il>
drivers/infiniband/ulp/sdp/sdp_main.c

index 27a563cf9d90553686ef665280e90bf61ce7403c..4aca949bfeeaa071e14232dc96290f12a307d53b 100644 (file)
@@ -2715,6 +2715,8 @@ kill_socks:
 
                        sk->sk_shutdown |= RCV_SHUTDOWN;
                        sdp_reset(sk);
+                       sdp_close(sk,0);
+
                        if ((1 << sk->sk_state) &
                                (TCPF_FIN_WAIT1 | TCPF_CLOSE_WAIT |
                                 TCPF_LAST_ACK | TCPF_TIME_WAIT)) {