s390/scsi: Convert timers to use timer_setup()
In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly. Cc: Steffen Maier <maier@linux.vnet.ibm.com> Cc: Benjamin Block <bblock@linux.vnet.ibm.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: linux-s390@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
544e8dd7a8
commit
75492a5156
|
@ -56,6 +56,8 @@ enum zfcp_erp_act_result {
|
|||
ZFCP_ERP_NOMEM = 5,
|
||||
};
|
||||
|
||||
static void zfcp_erp_memwait_handler(struct timer_list *t);
|
||||
|
||||
static void zfcp_erp_adapter_block(struct zfcp_adapter *adapter, int mask)
|
||||
{
|
||||
zfcp_erp_clear_adapter_status(adapter,
|
||||
|
@ -237,6 +239,7 @@ static struct zfcp_erp_action *zfcp_erp_setup_act(int need, u32 act_status,
|
|||
erp_action->fsf_req_id = 0;
|
||||
erp_action->action = need;
|
||||
erp_action->status = act_status;
|
||||
timer_setup(&erp_action->timer, zfcp_erp_memwait_handler, 0);
|
||||
|
||||
return erp_action;
|
||||
}
|
||||
|
@ -564,21 +567,22 @@ void zfcp_erp_notify(struct zfcp_erp_action *erp_action, unsigned long set_mask)
|
|||
* zfcp_erp_timeout_handler - Trigger ERP action from timed out ERP request
|
||||
* @data: ERP action (from timer data)
|
||||
*/
|
||||
void zfcp_erp_timeout_handler(unsigned long data)
|
||||
void zfcp_erp_timeout_handler(struct timer_list *t)
|
||||
{
|
||||
struct zfcp_erp_action *act = (struct zfcp_erp_action *) data;
|
||||
struct zfcp_fsf_req *fsf_req = from_timer(fsf_req, t, timer);
|
||||
struct zfcp_erp_action *act = fsf_req->erp_action;
|
||||
zfcp_erp_notify(act, ZFCP_STATUS_ERP_TIMEDOUT);
|
||||
}
|
||||
|
||||
static void zfcp_erp_memwait_handler(unsigned long data)
|
||||
static void zfcp_erp_memwait_handler(struct timer_list *t)
|
||||
{
|
||||
zfcp_erp_notify((struct zfcp_erp_action *)data, 0);
|
||||
struct zfcp_erp_action *act = from_timer(act, t, timer);
|
||||
|
||||
zfcp_erp_notify(act, 0);
|
||||
}
|
||||
|
||||
static void zfcp_erp_strategy_memwait(struct zfcp_erp_action *erp_action)
|
||||
{
|
||||
setup_timer(&erp_action->timer, zfcp_erp_memwait_handler,
|
||||
(unsigned long) erp_action);
|
||||
erp_action->timer.expires = jiffies + HZ;
|
||||
add_timer(&erp_action->timer);
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@ extern int zfcp_erp_thread_setup(struct zfcp_adapter *);
|
|||
extern void zfcp_erp_thread_kill(struct zfcp_adapter *);
|
||||
extern void zfcp_erp_wait(struct zfcp_adapter *);
|
||||
extern void zfcp_erp_notify(struct zfcp_erp_action *, unsigned long);
|
||||
extern void zfcp_erp_timeout_handler(unsigned long);
|
||||
extern void zfcp_erp_timeout_handler(struct timer_list *);
|
||||
|
||||
/* zfcp_fc.c */
|
||||
extern struct kmem_cache *zfcp_fc_req_cache;
|
||||
|
|
|
@ -21,9 +21,10 @@
|
|||
|
||||
struct kmem_cache *zfcp_fsf_qtcb_cache;
|
||||
|
||||
static void zfcp_fsf_request_timeout_handler(unsigned long data)
|
||||
static void zfcp_fsf_request_timeout_handler(struct timer_list *t)
|
||||
{
|
||||
struct zfcp_adapter *adapter = (struct zfcp_adapter *) data;
|
||||
struct zfcp_fsf_req *fsf_req = from_timer(fsf_req, t, timer);
|
||||
struct zfcp_adapter *adapter = fsf_req->adapter;
|
||||
zfcp_qdio_siosl(adapter);
|
||||
zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED,
|
||||
"fsrth_1");
|
||||
|
@ -32,8 +33,7 @@ static void zfcp_fsf_request_timeout_handler(unsigned long data)
|
|||
static void zfcp_fsf_start_timer(struct zfcp_fsf_req *fsf_req,
|
||||
unsigned long timeout)
|
||||
{
|
||||
fsf_req->timer.function = zfcp_fsf_request_timeout_handler;
|
||||
fsf_req->timer.data = (unsigned long) fsf_req->adapter;
|
||||
fsf_req->timer.function = (TIMER_FUNC_TYPE)zfcp_fsf_request_timeout_handler;
|
||||
fsf_req->timer.expires = jiffies + timeout;
|
||||
add_timer(&fsf_req->timer);
|
||||
}
|
||||
|
@ -41,8 +41,7 @@ static void zfcp_fsf_start_timer(struct zfcp_fsf_req *fsf_req,
|
|||
static void zfcp_fsf_start_erp_timer(struct zfcp_fsf_req *fsf_req)
|
||||
{
|
||||
BUG_ON(!fsf_req->erp_action);
|
||||
fsf_req->timer.function = zfcp_erp_timeout_handler;
|
||||
fsf_req->timer.data = (unsigned long) fsf_req->erp_action;
|
||||
fsf_req->timer.function = (TIMER_FUNC_TYPE)zfcp_erp_timeout_handler;
|
||||
fsf_req->timer.expires = jiffies + 30 * HZ;
|
||||
add_timer(&fsf_req->timer);
|
||||
}
|
||||
|
@ -692,7 +691,7 @@ static struct zfcp_fsf_req *zfcp_fsf_req_create(struct zfcp_qdio *qdio,
|
|||
adapter->req_no++;
|
||||
|
||||
INIT_LIST_HEAD(&req->list);
|
||||
init_timer(&req->timer);
|
||||
timer_setup(&req->timer, NULL, 0);
|
||||
init_completion(&req->completion);
|
||||
|
||||
req->adapter = adapter;
|
||||
|
|
Loading…
Reference in New Issue