PCI: shpchp: Convert timers to use timer_setup()
authorKees Cook <keescook@chromium.org>
Fri, 20 Oct 2017 20:11:42 +0000 (15:11 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 7 Nov 2017 00:48:57 +0000 (18:48 -0600)
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.

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Arvind Yadav <arvind.yadav.cs@gmail.com>
Cc: Quentin Lambert <lambert.quentin@gmail.com>
Cc: Aleksandr Bezzubikov <zuban32s@gmail.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Marcel Apfelbaum <marcel@redhat.com>
drivers/pci/hotplug/shpchp_hpc.c

index e5824c7b7b6b30195f46dd1d7a560021e55c11ae..4810e9626d9f12d64dcadba00da08dc2fc3526ce 100644 (file)
@@ -229,14 +229,13 @@ static inline int shpc_indirect_read(struct controller *ctrl, int index,
 /*
  * This is the interrupt polling timeout function.
  */
-static void int_poll_timeout(unsigned long data)
+static void int_poll_timeout(struct timer_list *t)
 {
-       struct controller *ctrl = (struct controller *)data;
+       struct controller *ctrl = from_timer(ctrl, t, poll_timer);
 
        /* Poll for interrupt events.  regs == NULL => polling */
        shpc_isr(0, ctrl);
 
-       init_timer(&ctrl->poll_timer);
        if (!shpchp_poll_time)
                shpchp_poll_time = 2; /* default polling interval is 2 sec */
 
@@ -252,8 +251,6 @@ static void start_int_poll_timer(struct controller *ctrl, int sec)
        if ((sec <= 0) || (sec > 60))
                sec = 2;
 
-       ctrl->poll_timer.function = &int_poll_timeout;
-       ctrl->poll_timer.data = (unsigned long)ctrl;
        ctrl->poll_timer.expires = jiffies + sec * HZ;
        add_timer(&ctrl->poll_timer);
 }
@@ -1054,7 +1051,7 @@ int shpc_init(struct controller *ctrl, struct pci_dev *pdev)
 
        if (shpchp_poll_mode) {
                /* Install interrupt polling timer. Start with 10 sec delay */
-               init_timer(&ctrl->poll_timer);
+               timer_setup(&ctrl->poll_timer, int_poll_timeout, 0);
                start_int_poll_timer(ctrl, 10);
        } else {
                /* Installs the interrupt handler */