From: Eldad Zinger Date: Sun, 18 Apr 2010 11:34:33 +0000 (+0300) Subject: sdp: fix for brutal device removing X-Git-Tag: v4.1.12-92~264^2~5^2~197 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=4d778ab5cd7b57274ac69f6e7f73b263c212ff46;p=users%2Fjedix%2Flinux-maple.git sdp: fix for brutal device removing 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 --- diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c index 27a563cf9d905..4aca949bfeeaa 100644 --- a/drivers/infiniband/ulp/sdp/sdp_main.c +++ b/drivers/infiniband/ulp/sdp/sdp_main.c @@ -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)) {