[ofa-general] [2.6.24-rc minor bugfix] IB/srp: release transport before removing host

Dave Dillow dillowda at ornl.gov
Thu Jan 3 19:35:41 PST 2008


The documented call sequence for removing a host is to call the
transport xxx_remove_host() prior to scsi_remove_host(). The SRP
transport used to crash when that order was followed, but as it is now
fixed, use the documented order.

Signed-off-by: David Dillow <dillowda at ornl.gov>
Acked-by: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
---

On Fri, 2008-01-04 at 11:54 +0900, FUJITA Tomonori wrote:
> Linus has already merged your previous patch:
[snip]
> So please resend a patch to move srp_remove_host before
> scsi_remove_host instead of adding srp_remove_host.
[snip]
> > Not sure if your Acked-by was for this one as well, so I left it off.
> 
> Acked-by: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>

diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 77e8b90..bdb6f85 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -2053,8 +2053,8 @@ static void srp_remove_one(struct ib_device *device)
 
 		list_for_each_entry_safe(target, tmp_target,
 					 &host->target_list, list) {
-			scsi_remove_host(target->scsi_host);
 			srp_remove_host(target->scsi_host);
+			scsi_remove_host(target->scsi_host);
 			srp_disconnect_target(target);
 			ib_destroy_cm_id(target->cm_id);
 			srp_free_target_ib(target);




More information about the general mailing list