IB/srp: Release transport before removing host
authorDave Dillow <dillowda@ornl.gov>
Fri, 4 Jan 2008 03:35:41 +0000 (22:35 -0500)
committerRoland Dreier <rolandd@cisco.com>
Tue, 8 Jan 2008 20:08:10 +0000 (12:08 -0800)
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@ornl.gov>
Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/srp/ib_srp.c

index 77e8b90dfbff638f190c1a8d00b3765de32c7188..bdb6f8517401d5950872c05e47aa64685e8287c6 100644 (file)
@@ -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);