]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/scsi/lpfc/lpfc_init.c
scsi: lpfc: Convert timers to use timer_setup()
[mirror_ubuntu-bionic-kernel.git] / drivers / scsi / lpfc / lpfc_init.c
index 100bc4c8798d76852adb9224edc763f70f0741ff..6a1e28ba92585a9219030d11a491facc7e7a0049 100644 (file)
@@ -1138,13 +1138,13 @@ lpfc_hba_down_post(struct lpfc_hba *phba)
  * be cleared by the worker thread after it has taken the event bitmap out.
  **/
 static void
-lpfc_hb_timeout(unsigned long ptr)
+lpfc_hb_timeout(struct timer_list *t)
 {
        struct lpfc_hba *phba;
        uint32_t tmo_posted;
        unsigned long iflag;
 
-       phba = (struct lpfc_hba *)ptr;
+       phba = from_timer(phba, t, hb_tmofunc);
 
        /* Check for heart beat timeout conditions */
        spin_lock_irqsave(&phba->pport->work_port_lock, iflag);
@@ -1172,12 +1172,12 @@ lpfc_hb_timeout(unsigned long ptr)
  * be cleared by the worker thread after it has taken the event bitmap out.
  **/
 static void
-lpfc_rrq_timeout(unsigned long ptr)
+lpfc_rrq_timeout(struct timer_list *t)
 {
        struct lpfc_hba *phba;
        unsigned long iflag;
 
-       phba = (struct lpfc_hba *)ptr;
+       phba = from_timer(phba, t, rrq_tmr);
        spin_lock_irqsave(&phba->pport->work_port_lock, iflag);
        if (!(phba->pport->load_flag & FC_UNLOADING))
                phba->hba_flag |= HBA_RRQ_ACTIVE;
@@ -3937,14 +3937,11 @@ lpfc_create_port(struct lpfc_hba *phba, int instance, struct device *dev)
        INIT_LIST_HEAD(&vport->rcv_buffer_list);
        spin_lock_init(&vport->work_port_lock);
 
-       setup_timer(&vport->fc_disctmo, lpfc_disc_timeout,
-                       (unsigned long)vport);
+       timer_setup(&vport->fc_disctmo, lpfc_disc_timeout, 0);
 
-       setup_timer(&vport->els_tmofunc, lpfc_els_timeout,
-                       (unsigned long)vport);
+       timer_setup(&vport->els_tmofunc, lpfc_els_timeout, 0);
 
-       setup_timer(&vport->delayed_disc_tmo, lpfc_delayed_disc_tmo,
-                       (unsigned long)vport);
+       timer_setup(&vport->delayed_disc_tmo, lpfc_delayed_disc_tmo, 0);
 
        error = scsi_add_host_with_dma(shost, dev, &phba->pcidev->dev);
        if (error)
@@ -4210,9 +4207,9 @@ lpfc_fcf_redisc_wait_start_timer(struct lpfc_hba *phba)
  * worker thread context.
  **/
 static void
-lpfc_sli4_fcf_redisc_wait_tmo(unsigned long ptr)
+lpfc_sli4_fcf_redisc_wait_tmo(struct timer_list *t)
 {
-       struct lpfc_hba *phba = (struct lpfc_hba *)ptr;
+       struct lpfc_hba *phba = from_timer(phba, t, fcf.redisc_wait);
 
        /* Don't send FCF rediscovery event if timer cancelled */
        spin_lock_irq(&phba->hbalock);
@@ -5624,15 +5621,13 @@ lpfc_setup_driver_resource_phase1(struct lpfc_hba *phba)
        INIT_LIST_HEAD(&phba->luns);
 
        /* MBOX heartbeat timer */
-       setup_timer(&psli->mbox_tmo, lpfc_mbox_timeout, (unsigned long)phba);
+       timer_setup(&psli->mbox_tmo, lpfc_mbox_timeout, 0);
        /* Fabric block timer */
-       setup_timer(&phba->fabric_block_timer, lpfc_fabric_block_timeout,
-                       (unsigned long)phba);
+       timer_setup(&phba->fabric_block_timer, lpfc_fabric_block_timeout, 0);
        /* EA polling mode timer */
-       setup_timer(&phba->eratt_poll, lpfc_poll_eratt,
-                       (unsigned long)phba);
+       timer_setup(&phba->eratt_poll, lpfc_poll_eratt, 0);
        /* Heartbeat timer */
-       setup_timer(&phba->hb_tmofunc, lpfc_hb_timeout, (unsigned long)phba);
+       timer_setup(&phba->hb_tmofunc, lpfc_hb_timeout, 0);
 
        return 0;
 }
@@ -5658,8 +5653,7 @@ lpfc_sli_driver_resource_setup(struct lpfc_hba *phba)
         */
 
        /* FCP polling mode timer */
-       setup_timer(&phba->fcp_poll_timer, lpfc_poll_timeout,
-                       (unsigned long)phba);
+       timer_setup(&phba->fcp_poll_timer, lpfc_poll_timeout, 0);
 
        /* Host attention work mask setup */
        phba->work_ha_mask = (HA_ERATT | HA_MBATT | HA_LATT);
@@ -5829,11 +5823,10 @@ lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba)
         * Initialize timers used by driver
         */
 
-       setup_timer(&phba->rrq_tmr, lpfc_rrq_timeout, (unsigned long)phba);
+       timer_setup(&phba->rrq_tmr, lpfc_rrq_timeout, 0);
 
        /* FCF rediscover timer */
-       setup_timer(&phba->fcf.redisc_wait, lpfc_sli4_fcf_redisc_wait_tmo,
-                       (unsigned long)phba);
+       timer_setup(&phba->fcf.redisc_wait, lpfc_sli4_fcf_redisc_wait_tmo, 0);
 
        /*
         * Control structure for handling external multi-buffer mailbox