diff options
author | Kees Cook <keescook@chromium.org> | 2017-09-03 16:23:32 -0400 |
---|---|---|
committer | Kees Cook <keescook@chromium.org> | 2017-11-08 18:51:35 -0500 |
commit | 8e5f4ba0cd5ed3879d484472657122742a749e9c (patch) | |
tree | 82a9a5d07ad9067e023cd4c7591d3938964c2a2c | |
parent | 1c10bbee8cf7c8df4e5d9e8ccc9754b200f625ff (diff) |
scsi: qla2xxx: 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: qla2xxx-upstream@qlogic.com
Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Tested-by: Bart Van Assche <Bart.VanAssche@wdc.com>
-rw-r--r-- | drivers/scsi/qla2xxx/qla_gbl.h | 6 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 4 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_inline.h | 4 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mid.c | 2 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 11 |
5 files changed, 12 insertions, 15 deletions
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h index f852ca60c49f..3ad375f85b59 100644 --- a/drivers/scsi/qla2xxx/qla_gbl.h +++ b/drivers/scsi/qla2xxx/qla_gbl.h | |||
@@ -206,8 +206,8 @@ int qla24xx_async_abort_cmd(srb_t *); | |||
206 | */ | 206 | */ |
207 | extern struct scsi_host_template qla2xxx_driver_template; | 207 | extern struct scsi_host_template qla2xxx_driver_template; |
208 | extern struct scsi_transport_template *qla2xxx_transport_vport_template; | 208 | extern struct scsi_transport_template *qla2xxx_transport_vport_template; |
209 | extern void qla2x00_timer(scsi_qla_host_t *); | 209 | extern void qla2x00_timer(struct timer_list *); |
210 | extern void qla2x00_start_timer(scsi_qla_host_t *, void *, unsigned long); | 210 | extern void qla2x00_start_timer(scsi_qla_host_t *, unsigned long); |
211 | extern void qla24xx_deallocate_vp_id(scsi_qla_host_t *); | 211 | extern void qla24xx_deallocate_vp_id(scsi_qla_host_t *); |
212 | extern int qla24xx_disable_vp (scsi_qla_host_t *); | 212 | extern int qla24xx_disable_vp (scsi_qla_host_t *); |
213 | extern int qla24xx_enable_vp (scsi_qla_host_t *); | 213 | extern int qla24xx_enable_vp (scsi_qla_host_t *); |
@@ -753,7 +753,7 @@ extern int qla82xx_restart_isp(scsi_qla_host_t *); | |||
753 | /* IOCB related functions */ | 753 | /* IOCB related functions */ |
754 | extern int qla82xx_start_scsi(srb_t *); | 754 | extern int qla82xx_start_scsi(srb_t *); |
755 | extern void qla2x00_sp_free(void *); | 755 | extern void qla2x00_sp_free(void *); |
756 | extern void qla2x00_sp_timeout(unsigned long); | 756 | extern void qla2x00_sp_timeout(struct timer_list *); |
757 | extern void qla2x00_bsg_job_done(void *, int); | 757 | extern void qla2x00_bsg_job_done(void *, int); |
758 | extern void qla2x00_bsg_sp_free(void *); | 758 | extern void qla2x00_bsg_sp_free(void *); |
759 | extern void qla2x00_start_iocbs(struct scsi_qla_host *, struct req_que *); | 759 | extern void qla2x00_start_iocbs(struct scsi_qla_host *, struct req_que *); |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index b5b48ddca962..44cf875a484a 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
@@ -45,9 +45,9 @@ static void qla24xx_handle_prli_done_event(struct scsi_qla_host *, | |||
45 | /* SRB Extensions ---------------------------------------------------------- */ | 45 | /* SRB Extensions ---------------------------------------------------------- */ |
46 | 46 | ||
47 | void | 47 | void |
48 | qla2x00_sp_timeout(unsigned long __data) | 48 | qla2x00_sp_timeout(struct timer_list *t) |
49 | { | 49 | { |
50 | srb_t *sp = (srb_t *)__data; | 50 | srb_t *sp = from_timer(sp, t, u.iocb_cmd.timer); |
51 | struct srb_iocb *iocb; | 51 | struct srb_iocb *iocb; |
52 | scsi_qla_host_t *vha = sp->vha; | 52 | scsi_qla_host_t *vha = sp->vha; |
53 | struct req_que *req; | 53 | struct req_que *req; |
diff --git a/drivers/scsi/qla2xxx/qla_inline.h b/drivers/scsi/qla2xxx/qla_inline.h index 9a2c86eacf44..17d2c20f1f75 100644 --- a/drivers/scsi/qla2xxx/qla_inline.h +++ b/drivers/scsi/qla2xxx/qla_inline.h | |||
@@ -269,10 +269,8 @@ qla2x00_rel_sp(srb_t *sp) | |||
269 | static inline void | 269 | static inline void |
270 | qla2x00_init_timer(srb_t *sp, unsigned long tmo) | 270 | qla2x00_init_timer(srb_t *sp, unsigned long tmo) |
271 | { | 271 | { |
272 | init_timer(&sp->u.iocb_cmd.timer); | 272 | timer_setup(&sp->u.iocb_cmd.timer, qla2x00_sp_timeout, 0); |
273 | sp->u.iocb_cmd.timer.expires = jiffies + tmo * HZ; | 273 | sp->u.iocb_cmd.timer.expires = jiffies + tmo * HZ; |
274 | sp->u.iocb_cmd.timer.data = (unsigned long)sp; | ||
275 | sp->u.iocb_cmd.timer.function = qla2x00_sp_timeout; | ||
276 | add_timer(&sp->u.iocb_cmd.timer); | 274 | add_timer(&sp->u.iocb_cmd.timer); |
277 | sp->free = qla2x00_sp_free; | 275 | sp->free = qla2x00_sp_free; |
278 | if (IS_QLAFX00(sp->vha->hw) && (sp->type == SRB_FXIOCB_DCMD)) | 276 | if (IS_QLAFX00(sp->vha->hw) && (sp->type == SRB_FXIOCB_DCMD)) |
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c index c0f8f6c17b79..cbf544dbf883 100644 --- a/drivers/scsi/qla2xxx/qla_mid.c +++ b/drivers/scsi/qla2xxx/qla_mid.c | |||
@@ -487,7 +487,7 @@ qla24xx_create_vhost(struct fc_vport *fc_vport) | |||
487 | atomic_set(&vha->loop_state, LOOP_DOWN); | 487 | atomic_set(&vha->loop_state, LOOP_DOWN); |
488 | atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); | 488 | atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); |
489 | 489 | ||
490 | qla2x00_start_timer(vha, qla2x00_timer, WATCH_INTERVAL); | 490 | qla2x00_start_timer(vha, WATCH_INTERVAL); |
491 | 491 | ||
492 | vha->req = base_vha->req; | 492 | vha->req = base_vha->req; |
493 | host->can_queue = base_vha->req->length + 128; | 493 | host->can_queue = base_vha->req->length + 128; |
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 5b2437a5ea44..c3b3daa797ff 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
@@ -330,12 +330,10 @@ struct scsi_transport_template *qla2xxx_transport_vport_template = NULL; | |||
330 | */ | 330 | */ |
331 | 331 | ||
332 | __inline__ void | 332 | __inline__ void |
333 | qla2x00_start_timer(scsi_qla_host_t *vha, void *func, unsigned long interval) | 333 | qla2x00_start_timer(scsi_qla_host_t *vha, unsigned long interval) |
334 | { | 334 | { |
335 | init_timer(&vha->timer); | 335 | timer_setup(&vha->timer, qla2x00_timer, 0); |
336 | vha->timer.expires = jiffies + interval * HZ; | 336 | vha->timer.expires = jiffies + interval * HZ; |
337 | vha->timer.data = (unsigned long)vha; | ||
338 | vha->timer.function = (void (*)(unsigned long))func; | ||
339 | add_timer(&vha->timer); | 337 | add_timer(&vha->timer); |
340 | vha->timer_active = 1; | 338 | vha->timer_active = 1; |
341 | } | 339 | } |
@@ -3245,7 +3243,7 @@ skip_dpc: | |||
3245 | base_vha->host->irq = ha->pdev->irq; | 3243 | base_vha->host->irq = ha->pdev->irq; |
3246 | 3244 | ||
3247 | /* Initialized the timer */ | 3245 | /* Initialized the timer */ |
3248 | qla2x00_start_timer(base_vha, qla2x00_timer, WATCH_INTERVAL); | 3246 | qla2x00_start_timer(base_vha, WATCH_INTERVAL); |
3249 | ql_dbg(ql_dbg_init, base_vha, 0x00ef, | 3247 | ql_dbg(ql_dbg_init, base_vha, 0x00ef, |
3250 | "Started qla2x00_timer with " | 3248 | "Started qla2x00_timer with " |
3251 | "interval=%d.\n", WATCH_INTERVAL); | 3249 | "interval=%d.\n", WATCH_INTERVAL); |
@@ -5994,8 +5992,9 @@ qla2x00_rst_aen(scsi_qla_host_t *vha) | |||
5994 | * Context: Interrupt | 5992 | * Context: Interrupt |
5995 | ***************************************************************************/ | 5993 | ***************************************************************************/ |
5996 | void | 5994 | void |
5997 | qla2x00_timer(scsi_qla_host_t *vha) | 5995 | qla2x00_timer(struct timer_list *t) |
5998 | { | 5996 | { |
5997 | scsi_qla_host_t *vha = from_timer(vha, t, timer); | ||
5999 | unsigned long cpu_flags = 0; | 5998 | unsigned long cpu_flags = 0; |
6000 | int start_dpc = 0; | 5999 | int start_dpc = 0; |
6001 | int index; | 6000 | int index; |