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: Muli Ben-Yehuda <mu...@mulix.org>
Cc: Jon Mason <jdma...@kudzu.us>
Cc: Thomas Gleixner <t...@linutronix.de>
Cc: Ingo Molnar <mi...@redhat.com>
Cc: "H. Peter Anvin" <h...@zytor.com>
Cc: x...@kernel.org
Cc: io...@lists.linux-foundation.org
Signed-off-by: Kees Cook <keesc...@chromium.org>
---
 arch/x86/kernel/pci-calgary_64.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c
index 5286a4a92cf7..35c461f21815 100644
--- a/arch/x86/kernel/pci-calgary_64.c
+++ b/arch/x86/kernel/pci-calgary_64.c
@@ -898,10 +898,9 @@ static void calioc2_dump_error_regs(struct iommu_table 
*tbl)
               PHB_ROOT_COMPLEX_STATUS);
 }
 
-static void calgary_watchdog(unsigned long data)
+static void calgary_watchdog(struct timer_list *t)
 {
-       struct pci_dev *dev = (struct pci_dev *)data;
-       struct iommu_table *tbl = pci_iommu(dev->bus);
+       struct iommu_table *tbl = from_timer(tbl, t, watchdog_timer);
        void __iomem *bbar = tbl->bbar;
        u32 val32;
        void __iomem *target;
@@ -1016,8 +1015,7 @@ static void __init calgary_enable_translation(struct 
pci_dev *dev)
        writel(cpu_to_be32(val32), target);
        readl(target); /* flush */
 
-       setup_timer(&tbl->watchdog_timer, &calgary_watchdog,
-                   (unsigned long)dev);
+       timer_setup(&tbl->watchdog_timer, calgary_watchdog, 0);
        mod_timer(&tbl->watchdog_timer, jiffies);
 }
 
-- 
2.7.4


-- 
Kees Cook
Pixel Security

Reply via email to