From 9cbe6b31de49190c95c277db7f8fc61bf27e6e1f Mon Sep 17 00:00:00 2001 From: Stefan Richter Date: Sun, 20 Jan 2008 01:24:26 +0100 Subject: [PATCH] --- yaml --- r: 80946 b: refs/heads/master c: 4dccd020d7ca5e673d7804cc4ff80fbf58d8a37e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/firewire/fw-sbp2.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index bbee36e5e2ff..8262dc265321 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f148e20cef696e30a370d4f7cb9aeb46273fdd6e +refs/heads/master: 4dccd020d7ca5e673d7804cc4ff80fbf58d8a37e diff --git a/trunk/drivers/firewire/fw-sbp2.c b/trunk/drivers/firewire/fw-sbp2.c index e5a2571a3671..661a5b66f661 100644 --- a/trunk/drivers/firewire/fw-sbp2.c +++ b/trunk/drivers/firewire/fw-sbp2.c @@ -606,13 +606,17 @@ static void sbp2_release_target(struct kref *kref) struct sbp2_logical_unit *lu, *next; struct Scsi_Host *shost = container_of((void *)tgt, struct Scsi_Host, hostdata[0]); + struct fw_device *device = fw_device(tgt->unit->device.parent); list_for_each_entry_safe(lu, next, &tgt->lu_list, link) { if (lu->sdev) scsi_remove_device(lu->sdev); - sbp2_send_management_orb(lu, tgt->node_id, lu->generation, - SBP2_LOGOUT_REQUEST, lu->login_id, NULL); + if (!fw_device_is_shutdown(device)) + sbp2_send_management_orb(lu, tgt->node_id, + lu->generation, SBP2_LOGOUT_REQUEST, + lu->login_id, NULL); + fw_core_remove_address_handler(&lu->address_handler); list_del(&lu->link); kfree(lu);