]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
scsi: csiostor: Convert timers to use timer_setup()
authorKees Cook <keescook@chromium.org>
Sun, 22 Oct 2017 22:15:33 +0000 (15:15 -0700)
committerKees Cook <keescook@chromium.org>
Wed, 1 Nov 2017 18:27:04 +0000 (11:27 -0700)
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: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com>
Cc: Varun Prakash <varun@chelsio.com>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
Cc: linux-scsi@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/csiostor/csio_hw.c
drivers/scsi/csiostor/csio_mb.c
drivers/scsi/csiostor/csio_mb.h

index 5be0086142cac6991598cd9099522212709a216c..0bd1131b6cc940fd731f754eb31f1b7672ba544e 100644 (file)
@@ -3347,9 +3347,10 @@ csio_mberr_worker(void *data)
  *
  **/
 static void
-csio_hw_mb_timer(uintptr_t data)
+csio_hw_mb_timer(struct timer_list *t)
 {
-       struct csio_hw *hw = (struct csio_hw *)data;
+       struct csio_mbm *mbm = from_timer(mbm, t, timer);
+       struct csio_hw *hw = mbm->hw;
        struct csio_mb *mbp = NULL;
 
        spin_lock_irq(&hw->lock);
@@ -3715,9 +3716,9 @@ csio_mgmt_req_lookup(struct csio_mgmtm *mgmtm, struct csio_ioreq *io_req)
  * Return - none.
  */
 static void
-csio_mgmt_tmo_handler(uintptr_t data)
+csio_mgmt_tmo_handler(struct timer_list *t)
 {
-       struct csio_mgmtm *mgmtm = (struct csio_mgmtm *) data;
+       struct csio_mgmtm *mgmtm = from_timer(mgmtm, t, mgmt_timer);
        struct list_head *tmp;
        struct csio_ioreq *io_req;
 
@@ -3797,11 +3798,7 @@ csio_mgmtm_cleanup(struct csio_mgmtm *mgmtm)
 static int
 csio_mgmtm_init(struct csio_mgmtm *mgmtm, struct csio_hw *hw)
 {
-       struct timer_list *timer = &mgmtm->mgmt_timer;
-
-       init_timer(timer);
-       timer->function = csio_mgmt_tmo_handler;
-       timer->data = (unsigned long)mgmtm;
+       timer_setup(&mgmtm->mgmt_timer, csio_mgmt_tmo_handler, 0);
 
        INIT_LIST_HEAD(&mgmtm->active_q);
        INIT_LIST_HEAD(&mgmtm->cbfn_q);
index 9451787ca7f299715a97e34692315d69e7968910..abcedfbcecda26ddec8d0feb87f1af633c6011d3 100644 (file)
@@ -1644,13 +1644,10 @@ csio_mb_cancel_all(struct csio_hw *hw, struct list_head *cbfn_q)
  */
 int
 csio_mbm_init(struct csio_mbm *mbm, struct csio_hw *hw,
-             void (*timer_fn)(uintptr_t))
+             void (*timer_fn)(struct timer_list *))
 {
-       struct timer_list *timer = &mbm->timer;
-
-       init_timer(timer);
-       timer->function = timer_fn;
-       timer->data = (unsigned long)hw;
+       mbm->hw = hw;
+       timer_setup(&mbm->timer, timer_fn, 0);
 
        INIT_LIST_HEAD(&mbm->req_q);
        INIT_LIST_HEAD(&mbm->cbfn_q);
index 1bc82d0bc260259a84f16a03e2049a19844a85f2..a6823df730154a10e74a5fb1084ec869eb048518 100644 (file)
@@ -137,6 +137,7 @@ struct csio_mbm {
        uint32_t                a_mbox;                 /* Async mbox num */
        uint32_t                intr_idx;               /* Interrupt index */
        struct timer_list       timer;                  /* Mbox timer */
+       struct csio_hw          *hw;                    /* Hardware pointer */
        struct list_head        req_q;                  /* Mbox request queue */
        struct list_head        cbfn_q;                 /* Mbox completion q */
        struct csio_mb          *mcurrent;              /* Current mailbox */
@@ -252,7 +253,7 @@ void csio_mb_process_portparams_rsp(struct csio_hw *hw, struct csio_mb *mbp,
 
 /* MB module functions */
 int csio_mbm_init(struct csio_mbm *, struct csio_hw *,
-                           void (*)(uintptr_t));
+                           void (*)(struct timer_list *));
 void csio_mbm_exit(struct csio_mbm *);
 void csio_mb_intr_enable(struct csio_hw *);
 void csio_mb_intr_disable(struct csio_hw *);