From: Martin Schwidefsky From: Heiko Carstens From: Maxim Shchetynin zfcp host adapter changes: - Get rid of ZFCP_WAIT_EVENT_TIMEOUT macro. - Correct an error log mesage. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton --- 25-akpm/drivers/s390/scsi/zfcp_def.h | 28 +--------------------------- 25-akpm/drivers/s390/scsi/zfcp_erp.c | 11 +++-------- 25-akpm/drivers/s390/scsi/zfcp_fsf.c | 12 ++++++------ 3 files changed, 10 insertions(+), 41 deletions(-) diff -puN drivers/s390/scsi/zfcp_def.h~s390-zfcp-host-adapter drivers/s390/scsi/zfcp_def.h --- 25/drivers/s390/scsi/zfcp_def.h~s390-zfcp-host-adapter Tue Jul 27 14:13:33 2004 +++ 25-akpm/drivers/s390/scsi/zfcp_def.h Tue Jul 27 14:13:33 2004 @@ -33,7 +33,7 @@ #define ZFCP_DEF_H /* this drivers version (do not edit !!! generated and updated by cvs) */ -#define ZFCP_DEF_REVISION "$Revision: 1.75 $" +#define ZFCP_DEF_REVISION "$Revision: 1.78 $" /*************************** INCLUDES *****************************************/ @@ -1125,32 +1125,6 @@ extern void _zfcp_hex_dump(char *, int); if (ZFCP_LOG_CHECK(level)) { \ _zfcp_hex_dump(addr, count); \ } -/* - * Not yet optimal but useful: - * Waits until the condition is met or the timeout occurs. - * The condition may be a function call. This allows to - * execute some additional instructions in addition - * to a simple condition check. - * The timeout is modified on exit and holds the remaining time. - * Thus it is zero if a timeout ocurred, i.e. the condition was - * not met in the specified interval. - */ -#define __ZFCP_WAIT_EVENT_TIMEOUT(timeout, condition) \ -do { \ - set_current_state(TASK_UNINTERRUPTIBLE); \ - while (!(condition) && timeout) \ - timeout = schedule_timeout(timeout); \ - current->state = TASK_RUNNING; \ -} while (0); - -#define ZFCP_WAIT_EVENT_TIMEOUT(waitqueue, timeout, condition) \ -do { \ - wait_queue_t entry; \ - init_waitqueue_entry(&entry, current); \ - add_wait_queue(&waitqueue, &entry); \ - __ZFCP_WAIT_EVENT_TIMEOUT(timeout, condition) \ - remove_wait_queue(&waitqueue, &entry); \ -} while (0); #define zfcp_get_busid_by_adapter(adapter) (adapter->ccw_device->dev.bus_id) #define zfcp_get_busid_by_port(port) (zfcp_get_busid_by_adapter(port->adapter)) diff -puN drivers/s390/scsi/zfcp_erp.c~s390-zfcp-host-adapter drivers/s390/scsi/zfcp_erp.c --- 25/drivers/s390/scsi/zfcp_erp.c~s390-zfcp-host-adapter Tue Jul 27 14:13:33 2004 +++ 25-akpm/drivers/s390/scsi/zfcp_erp.c Tue Jul 27 14:13:33 2004 @@ -31,7 +31,7 @@ #define ZFCP_LOG_AREA ZFCP_LOG_AREA_ERP /* this drivers version (do not edit !!! generated and updated by cvs) */ -#define ZFCP_ERP_REVISION "$Revision: 1.56 $" +#define ZFCP_ERP_REVISION "$Revision: 1.60 $" #include "zfcp_ext.h" @@ -436,8 +436,8 @@ zfcp_els_handler(unsigned long data) int retval = 0; if (send_els->status != 0) { - ZFCP_LOG_NORMAL("ELS request timed out, physical port reopen " - "of port 0x%016Lx on adapter %s failed\n", + ZFCP_LOG_NORMAL("ELS request timed out, force physical port " + "reopen of port 0x%016Lx on adapter %s\n", port->wwpn, zfcp_get_busid_by_port(port)); debug_text_event(port->adapter->erp_dbf, 3, "forcreop"); retval = zfcp_erp_port_forced_reopen(port, 0); @@ -2187,11 +2187,6 @@ zfcp_erp_adapter_strategy(struct zfcp_er ZFCP_LOG_INFO("Waiting to allow the adapter %s " "to recover itself\n", zfcp_get_busid_by_adapter(adapter)); - /* - * SUGGESTION: substitute by - * timeout = ZFCP_TYPE2_RECOVERY_TIME; - * __ZFCP_WAIT_EVENT_TIMEOUT(timeout, 0); - */ timeout = ZFCP_TYPE2_RECOVERY_TIME; set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(timeout); diff -puN drivers/s390/scsi/zfcp_fsf.c~s390-zfcp-host-adapter drivers/s390/scsi/zfcp_fsf.c --- 25/drivers/s390/scsi/zfcp_fsf.c~s390-zfcp-host-adapter Tue Jul 27 14:13:33 2004 +++ 25-akpm/drivers/s390/scsi/zfcp_fsf.c Tue Jul 27 14:13:33 2004 @@ -29,7 +29,7 @@ */ /* this drivers version (do not edit !!! generated and updated by cvs) */ -#define ZFCP_FSF_C_REVISION "$Revision: 1.49 $" +#define ZFCP_FSF_C_REVISION "$Revision: 1.53 $" #include "zfcp_ext.h" @@ -4717,14 +4717,14 @@ zfcp_fsf_req_sbal_get(struct zfcp_adapte unsigned long *lock_flags) { int condition; - unsigned long timeout = ZFCP_SBAL_TIMEOUT; struct zfcp_qdio_queue *req_queue = &adapter->request_queue; if (unlikely(req_flags & ZFCP_WAIT_FOR_SBAL)) { - ZFCP_WAIT_EVENT_TIMEOUT(adapter->request_wq, timeout, - (condition = - (zfcp_fsf_req_create_sbal_check) - (lock_flags, req_queue, 1))); + wait_event_interruptible_timeout(adapter->request_wq, + (condition = + zfcp_fsf_req_create_sbal_check + (lock_flags, req_queue, 1)), + ZFCP_SBAL_TIMEOUT); if (!condition) { return -EIO; } _