bk://linux-scsi.bkbits.net/scsi-rc-fixes-2.6 heiko.carstens@de.ibm.com[jejb]|ChangeSet|20050202225642|31656 heiko.carstens # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2005/02/02 21:09:11-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-scsi-rc-fixes # # drivers/scsi/sr.c # 2005/02/02 21:09:04-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/02/02 16:56:42-06:00 heiko.carstens@de.ibm.com # [PATCH] zfcp: bugfixes (without kfree) for -bk # # From: Andreas Herrmann # From: Maxim Shchetynin # # zfcp changes: # - don't call del_timer_sync() in interrupt context # - correct residual count handling for data underruns # - mark LUN as ACCESS_DENIED on status LUN_SHARING_VIOLATION # # Signed-off-by: Heiko Carstens # Signed-off-by: James Bottomley # # drivers/s390/scsi/zfcp_fsf.c # 2005/01/31 04:00:18-06:00 heiko.carstens@de.ibm.com +18 -19 # zfcp: bugfixes (without kfree) for -bk # # drivers/s390/scsi/zfcp_erp.c # 2005/01/31 03:44:30-06:00 heiko.carstens@de.ibm.com +3 -3 # zfcp: bugfixes (without kfree) for -bk # # ChangeSet # 2005/02/01 14:56:54-06:00 jejb@mulgrave.(none) # SCSI: fix HBA removal problem with transport classes # # James Smart pointed out that if you insert and remove a HBA driver a few # times, eventually the system oopses. # # The reason is that the transport classes all kfree their attribute # containers, but don't actually unregister them first (so we have freed # memory on the container list). The attached should fix this. # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_transport_spi.c # 2005/02/01 14:54:44-06:00 jejb@mulgrave.(none) +3 -0 # SCSI: fix HBA removal problem with transport classes # # drivers/scsi/scsi_transport_iscsi.c # 2005/02/01 14:54:44-06:00 jejb@mulgrave.(none) +4 -0 # SCSI: fix HBA removal problem with transport classes # # drivers/scsi/scsi_transport_fc.c # 2005/02/01 14:54:44-06:00 jejb@mulgrave.(none) +3 -0 # SCSI: fix HBA removal problem with transport classes # # ChangeSet # 2005/01/28 14:38:23-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-scsi-rc-fixes # # drivers/scsi/sr.c # 2005/01/28 14:38:18-08:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/sg.c # 2005/01/28 14:38:18-08:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/sd.c # 2005/01/28 14:38:18-08:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/scsi_debug.c # 2005/01/28 14:38:18-08:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/osst.c # 2005/01/28 14:38:18-08:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/dpt_i2o.c # 2005/01/28 14:38:18-08:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/Kconfig # 2005/01/28 14:38:18-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/26 18:44:38-08:00 akpm@bix.(none) # Merge bk://linux-scsi.bkbits.net/scsi-rc-fixes-2.6 # into bix.(none):/usr/src/bk-scsi-rc-fixes # # drivers/scsi/osst.c # 2005/01/26 18:44:34-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/23 22:27:17-08:00 akpm@bix.(none) # Merge bk://linux-scsi.bkbits.net/scsi-rc-fixes-2.6 # into bix.(none):/usr/src/bk-scsi-rc-fixes # # drivers/scsi/sr.c # 2005/01/23 22:27:12-08:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/sg.c # 2005/01/23 22:27:12-08:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/sd.c # 2005/01/23 22:27:12-08:00 akpm@bix.(none) +0 -1 # Auto merged # # drivers/scsi/scsi_debug.c # 2005/01/23 22:27:12-08:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/dpt_i2o.c # 2005/01/23 22:27:12-08:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/Kconfig # 2005/01/23 22:27:12-08:00 akpm@bix.(none) +0 -0 # Auto merged # diff -Nru a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c --- a/drivers/s390/scsi/zfcp_erp.c 2005-02-03 18:29:36 -08:00 +++ b/drivers/s390/scsi/zfcp_erp.c 2005-02-03 18:29:36 -08:00 @@ -31,7 +31,7 @@ #define ZFCP_LOG_AREA ZFCP_LOG_AREA_ERP -#define ZFCP_ERP_REVISION "$Revision: 1.85 $" +#define ZFCP_ERP_REVISION "$Revision: 1.86 $" #include "zfcp_ext.h" @@ -369,7 +369,7 @@ ZFCP_LOG_NORMAL("error: initiation of Send ELS failed for port " "0x%08x on adapter %s\n", d_id, zfcp_get_busid_by_adapter(adapter)); - del_timer_sync(send_els->timer); + del_timer(send_els->timer); goto freemem; } @@ -969,7 +969,7 @@ debug_event(adapter->erp_dbf, 2, &erp_action->action, sizeof (int)); if (!(set_mask & ZFCP_STATUS_ERP_TIMEDOUT)) - del_timer_sync(&erp_action->timer); + del_timer(&erp_action->timer); erp_action->status |= set_mask; zfcp_erp_action_ready(erp_action); retval = 0; diff -Nru a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c --- a/drivers/s390/scsi/zfcp_fsf.c 2005-02-03 18:29:36 -08:00 +++ b/drivers/s390/scsi/zfcp_fsf.c 2005-02-03 18:29:36 -08:00 @@ -30,7 +30,7 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#define ZFCP_FSF_C_REVISION "$Revision: 1.88 $" +#define ZFCP_FSF_C_REVISION "$Revision: 1.92 $" #include "zfcp_ext.h" @@ -3203,7 +3203,9 @@ sizeof (union fsf_status_qual)); debug_text_event(adapter->erp_dbf, 2, "fsf_s_l_sh_vio"); - zfcp_erp_unit_failed(unit); + zfcp_erp_unit_access_denied(unit); + atomic_clear_mask(ZFCP_STATUS_UNIT_SHARED, &unit->status); + atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status); fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; break; @@ -4320,22 +4322,19 @@ /* check for underrun */ if (unlikely(fcp_rsp_iu->validity.bits.fcp_resid_under)) { - ZFCP_LOG_DEBUG("A data underrun was detected for a command. " - "unit 0x%016Lx, port 0x%016Lx, adapter %s. " - "The response data length is " - "%d, the original length was %d.\n", - unit->fcp_lun, - unit->port->wwpn, - zfcp_get_busid_by_unit(unit), - fcp_rsp_iu->fcp_resid, - (int) zfcp_get_fcp_dl(fcp_cmnd_iu)); - /* - * It may not have been possible to send all data and the - * underrun on send may already be in scpnt->resid, so it's add - * not equals in the below statement. - */ - scpnt->resid += fcp_rsp_iu->fcp_resid; - ZFCP_LOG_TRACE("scpnt->resid=0x%x\n", scpnt->resid); + ZFCP_LOG_INFO("A data underrun was detected for a command. " + "unit 0x%016Lx, port 0x%016Lx, adapter %s. " + "The response data length is " + "%d, the original length was %d.\n", + unit->fcp_lun, + unit->port->wwpn, + zfcp_get_busid_by_unit(unit), + fcp_rsp_iu->fcp_resid, + (int) zfcp_get_fcp_dl(fcp_cmnd_iu)); + + scpnt->resid = fcp_rsp_iu->fcp_resid; + if (scpnt->request_bufflen - scpnt->resid < scpnt->underflow) + scpnt->result |= DID_ERROR << 16; } skip_fsfstatus: @@ -5023,7 +5022,7 @@ * timer might be expired (absolutely unlikely) */ if (timer) - del_timer_sync(timer); + del_timer(timer); write_lock_irqsave(&adapter->fsf_req_list_lock, flags); list_del(&fsf_req->list); write_unlock_irqrestore(&adapter->fsf_req_list_lock, flags); diff -Nru a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c --- a/drivers/scsi/scsi_transport_fc.c 2005-02-03 18:29:36 -08:00 +++ b/drivers/scsi/scsi_transport_fc.c 2005-02-03 18:29:36 -08:00 @@ -847,6 +847,9 @@ { struct fc_internal *i = to_fc_internal(t); + attribute_container_unregister(&i->t.target_attrs); + attribute_container_unregister(&i->t.host_attrs); + kfree(i); } EXPORT_SYMBOL(fc_release_transport); diff -Nru a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c --- a/drivers/scsi/scsi_transport_iscsi.c 2005-02-03 18:29:36 -08:00 +++ b/drivers/scsi/scsi_transport_iscsi.c 2005-02-03 18:29:36 -08:00 @@ -356,6 +356,10 @@ void iscsi_release_transport(struct scsi_transport_template *t) { struct iscsi_internal *i = to_iscsi_internal(t); + + attribute_container_unregister(&i->t.target_attrs); + attribute_container_unregister(&i->t.host_attrs); + kfree(i); } diff -Nru a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c --- a/drivers/scsi/scsi_transport_spi.c 2005-02-03 18:29:36 -08:00 +++ b/drivers/scsi/scsi_transport_spi.c 2005-02-03 18:29:36 -08:00 @@ -921,6 +921,9 @@ { struct spi_internal *i = to_spi_internal(t); + attribute_container_unregister(&i->t.target_attrs); + attribute_container_unregister(&i->t.host_attrs); + kfree(i); } EXPORT_SYMBOL(spi_release_transport);