[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1199414359.3636.13.camel@obelisk.thedillows.org>
Date: Thu, 03 Jan 2008 21:39:19 -0500
From: Dave Dillow <dillowda@...l.gov>
To: FUJITA Tomonori <fujita.tomonori@....ntt.co.jp>
Cc: tomof@....org, rdreier@...co.com, linux-kernel@...r.kernel.org,
general@...ts.openfabrics.org
Subject: [2.6.24-rc BUGFIX] IB/srp: release transport when removing host
When removing the ib_srp module, srp_remove_one() does not release the
SRP transport class when it is releasing the SCSI host. This leads to
dangling references to kfree()'d memory, and an eventual oops.
Signed-off-by: David Dillow <dillowda@...l.gov>
---
On Fri, 2008-01-04 at 09:47 +0900, FUJITA Tomonori wrote:
> I think that this is the root problem and the patch fixes it in the
> right way. Please send this patch to linux-scsi@...r.kernel.org and a
> patch to move srp_remove_host before scsi_remove_host in
> srp_remove_one to Roland.
>
> Acked-by: FUJITA Tomonori <fujita.tomonori@....ntt.co.jp>
Not sure if your Acked-by was for this one as well, so I left it off.
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 950228f..bdb6f85 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -2053,6 +2053,7 @@ static void srp_remove_one(struct ib_device *device)
list_for_each_entry_safe(target, tmp_target,
&host->target_list, list) {
+ srp_remove_host(target->scsi_host);
scsi_remove_host(target->scsi_host);
srp_disconnect_target(target);
ib_destroy_cm_id(target->cm_id);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists