From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sebastian Riemer Subject: Re: [PATCH 01/14] IB/srp: Fix remove_one crash due to resource exhaustion Date: Wed, 12 Jun 2013 16:24:48 +0200 Message-ID: <51B884B0.1050907@profitbricks.com> References: <51B87501.4070005@acm.org> <51B875A4.7040903@acm.org> <51B879CF.1080802@acm.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <51B879CF.1080802-HInyCGIudOg@public.gmane.org> Sender: linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Bart Van Assche Cc: Roland Dreier , David Dillow , Vu Pham , linux-rdma , Dotan Barak , Eli Cohen List-Id: linux-rdma@vger.kernel.org On 12.06.2013 15:38, Bart Van Assche wrote: > On 06/12/13 15:20, Bart Van Assche wrote: >> If the add_one callback fails during driver load no resources are >> allocated so there isn't a need to release any resources. Trying >> to clean the resource may lead to the following kernel panic: >> >> BUG: unable to handle kernel NULL pointer dereference at (null) >> IP: [] srp_remove_one+0x31/0x240 [ib_srp] >> RIP: 0010:[] [] >> srp_remove_one+0x31/0x240 [ib_srp] >> Process rmmod (pid: 4562, threadinfo ffff8800dd738000, task >> ffff8801167e60c0) >> Call Trace: >> [] ib_unregister_client+0x4e/0x120 [ib_core] >> [] srp_cleanup_module+0x15/0x71 [ib_srp] >> [] sys_delete_module+0x194/0x260 >> [] system_call_fastpath+0x16/0x1b >> >> [bvanassche: Shortened patch description] >> Signed-off-by: Dotan Barak >> Reviewed-by: Eli Cohen >> Signed-off-by: Bart Van Assche >> Cc: Roland Dreier >> Cc: David Dillow >> Cc: Vu Pham >> Cc: Sebastian Riemer >> --- >> drivers/infiniband/ulp/srp/ib_srp.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/infiniband/ulp/srp/ib_srp.c >> b/drivers/infiniband/ulp/srp/ib_srp.c >> index 7ccf328..368d160 100644 >> --- a/drivers/infiniband/ulp/srp/ib_srp.c >> +++ b/drivers/infiniband/ulp/srp/ib_srp.c >> @@ -2507,6 +2507,8 @@ static void srp_remove_one(struct ib_device >> *device) >> struct srp_target_port *target; >> >> srp_dev = ib_get_client_data(device, &srp_client); >> + if (!srp_dev) >> + return; >> >> list_for_each_entry_safe(host, tmp_host, &srp_dev->dev_list, >> list) { >> device_unregister(&host->dev); >> > > Please note that this patch was authored by Dotan Barak, so I should > have mentioned: > > From: Dotan Barak Acked-by: Sebastian Riemer -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html