This converts several more cases of open-coded setup_timer() calls that
the setup_timer.cocci script was not able to handle itself.

Signed-off-by: Kees Cook <keesc...@chromium.org>
---
 arch/arm/mach-pxa/lubbock.c              |  7 ++-----
 drivers/media/i2c/tvaudio.c              |  4 +---
 drivers/net/ethernet/chelsio/cxgb/sge.c  | 11 +++++------
 drivers/net/ethernet/dec/tulip/de2104x.c |  9 +++------
 drivers/net/ethernet/neterion/s2io.c     |  9 ++-------
 drivers/s390/char/sclp_vt220.c           |  4 +---
 drivers/scsi/libfc/fc_fcp.c              |  3 +--
 drivers/tty/serial/amba-pl011.c          |  5 ++---
 fs/ncpfs/inode.c                         |  5 ++---
 9 files changed, 19 insertions(+), 38 deletions(-)

diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index d6159f8ef0c2..9020e18723e3 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -384,9 +384,7 @@ static struct pxafb_mach_info sharp_lm8v31 = {
 static void lubbock_mmc_poll(unsigned long);
 static irq_handler_t mmc_detect_int;
 
-static struct timer_list mmc_timer = {
-       .function       = lubbock_mmc_poll,
-};
+static struct timer_list mmc_timer;
 
 static void lubbock_mmc_poll(unsigned long data)
 {
@@ -421,8 +419,7 @@ static int lubbock_mci_init(struct device *dev,
 {
        /* detect card insert/eject */
        mmc_detect_int = detect_int;
-       init_timer(&mmc_timer);
-       mmc_timer.data = (unsigned long) data;
+       setup_timer(&mmc_timer, lubbock_mmc_poll, (unsigned long)data);
        return request_irq(LUBBOCK_SD_IRQ, lubbock_detect_int,
                           0, "lubbock-sd-detect", data);
 }
diff --git a/drivers/media/i2c/tvaudio.c b/drivers/media/i2c/tvaudio.c
index ce86534450ac..e446bd91d408 100644
--- a/drivers/media/i2c/tvaudio.c
+++ b/drivers/media/i2c/tvaudio.c
@@ -1995,7 +1995,7 @@ static int tvaudio_probe(struct i2c_client *client, const 
struct i2c_device_id *
        v4l2_ctrl_handler_setup(&chip->hdl);
 
        chip->thread = NULL;
-       init_timer(&chip->wt);
+       setup_timer(&chip->wt, chip_thread_wake, (unsigned long)chip);
        if (desc->flags & CHIP_NEED_CHECKMODE) {
                if (!desc->getrxsubchans || !desc->setaudmode) {
                        /* This shouldn't be happen. Warn user, but keep working
@@ -2005,8 +2005,6 @@ static int tvaudio_probe(struct i2c_client *client, const 
struct i2c_device_id *
                        return 0;
                }
                /* start async thread */
-               chip->wt.function = chip_thread_wake;
-               chip->wt.data     = (unsigned long)chip;
                chip->thread = kthread_run(chip_thread, chip, "%s",
                                           client->name);
                if (IS_ERR(chip->thread)) {
diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.c 
b/drivers/net/ethernet/chelsio/cxgb/sge.c
index 75e439918700..0bc30ff625ae 100644
--- a/drivers/net/ethernet/chelsio/cxgb/sge.c
+++ b/drivers/net/ethernet/chelsio/cxgb/sge.c
@@ -2079,14 +2079,13 @@ struct sge *t1_sge_create(struct adapter *adapter, 
struct sge_params *p)
                    (unsigned long)sge);
 
        if (is_T2(sge->adapter)) {
-               init_timer(&sge->espibug_timer);
+               setup_timer(&sge->espibug_timer,
+                           adapter->params.nports > 1 ?
+                               espibug_workaround_t204 : espibug_workaround,
+                           (unsigned long)sge->adapter);
 
-               if (adapter->params.nports > 1) {
+               if (adapter->params.nports > 1)
                        tx_sched_init(sge);
-                       sge->espibug_timer.function = espibug_workaround_t204;
-               } else
-                       sge->espibug_timer.function = espibug_workaround;
-               sge->espibug_timer.data = (unsigned long)sge->adapter;
 
                sge->espibug_timeout = 1;
                /* for T204, every 10ms */
diff --git a/drivers/net/ethernet/dec/tulip/de2104x.c 
b/drivers/net/ethernet/dec/tulip/de2104x.c
index c87b8cc42963..14eb3706ecbe 100644
--- a/drivers/net/ethernet/dec/tulip/de2104x.c
+++ b/drivers/net/ethernet/dec/tulip/de2104x.c
@@ -1999,12 +1999,9 @@ static int de_init_one(struct pci_dev *pdev, const 
struct pci_device_id *ent)
        de->msg_enable = (debug < 0 ? DE_DEF_MSG_ENABLE : debug);
        de->board_idx = board_idx;
        spin_lock_init (&de->lock);
-       init_timer(&de->media_timer);
-       if (de->de21040)
-               de->media_timer.function = de21040_media_timer;
-       else
-               de->media_timer.function = de21041_media_timer;
-       de->media_timer.data = (unsigned long) de;
+       setup_timer(&de->media_timer,
+                   de->de21040 ? de21040_media_timer : de21041_media_timer,
+                   (unsigned long)de);
 
        netif_carrier_off(dev);
 
diff --git a/drivers/net/ethernet/neterion/s2io.c 
b/drivers/net/ethernet/neterion/s2io.c
index fd2ec36c6fa1..67cb4d7ff5aa 100644
--- a/drivers/net/ethernet/neterion/s2io.c
+++ b/drivers/net/ethernet/neterion/s2io.c
@@ -339,12 +339,6 @@ static const char 
ethtool_driver_stats_keys[][ETH_GSTRING_LEN] = {
 #define S2IO_TEST_LEN  ARRAY_SIZE(s2io_gstrings)
 #define S2IO_STRINGS_LEN       (S2IO_TEST_LEN * ETH_GSTRING_LEN)
 
-#define S2IO_TIMER_CONF(timer, handle, arg, exp)       \
-       init_timer(&timer);                             \
-       timer.function = handle;                        \
-       timer.data = (unsigned long)arg;                \
-       mod_timer(&timer, (jiffies + exp))              \
-
 /* copy mac addr to def_mac_addr array */
 static void do_s2io_copy_mac_addr(struct s2io_nic *sp, int offset, u64 
mac_addr)
 {
@@ -7222,7 +7216,8 @@ static int s2io_card_up(struct s2io_nic *sp)
                return -ENODEV;
        }
 
-       S2IO_TIMER_CONF(sp->alarm_timer, s2io_alarm_handle, sp, (HZ/2));
+       setup_timer(&sp->alarm_timer, s2io_alarm_handle, (unsigned long)sp);
+       mod_timer(&sp->alarm_timer, jiffies + HZ / 2);
 
        set_bit(__S2IO_STATE_CARD_UP, &sp->state);
 
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c
index 095481d32236..2c52821011a9 100644
--- a/drivers/s390/char/sclp_vt220.c
+++ b/drivers/s390/char/sclp_vt220.c
@@ -453,8 +453,6 @@ __sclp_vt220_write(const unsigned char *buf, int count, int 
do_schedule,
        /* Setup timer to output current console buffer after some time */
        if (sclp_vt220_current_request != NULL &&
            !timer_pending(&sclp_vt220_timer) && do_schedule) {
-               sclp_vt220_timer.function = sclp_vt220_timeout;
-               sclp_vt220_timer.data = 0UL;
                sclp_vt220_timer.expires = jiffies + BUFFER_MAX_DELAY;
                add_timer(&sclp_vt220_timer);
        }
@@ -698,7 +696,7 @@ static int __init __sclp_vt220_init(int num_pages)
        spin_lock_init(&sclp_vt220_lock);
        INIT_LIST_HEAD(&sclp_vt220_empty);
        INIT_LIST_HEAD(&sclp_vt220_outqueue);
-       init_timer(&sclp_vt220_timer);
+       setup_timer(&sclp_vt220_timer, sclp_vt220_timeout, 0UL);
        tty_port_init(&sclp_vt220_port);
        sclp_vt220_current_request = NULL;
        sclp_vt220_buffered_chars = 0;
diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c
index 234352da5c3c..18ca42602eb8 100644
--- a/drivers/scsi/libfc/fc_fcp.c
+++ b/drivers/scsi/libfc/fc_fcp.c
@@ -155,8 +155,7 @@ static struct fc_fcp_pkt *fc_fcp_pkt_alloc(struct fc_lport 
*lport, gfp_t gfp)
                fsp->lp = lport;
                fsp->xfer_ddp = FC_XID_UNKNOWN;
                refcount_set(&fsp->ref_cnt, 1);
-               init_timer(&fsp->timer);
-               fsp->timer.data = (unsigned long)fsp;
+               setup_timer(&fsp->timer, NULL, (unsigned long)fsp);
                INIT_LIST_HEAD(&fsp->list);
                spin_lock_init(&fsp->scsi_pkt_lock);
        } else {
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 8a857bb34fbb..53913379f3d3 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -1199,9 +1199,8 @@ static void pl011_dma_startup(struct uart_amba_port *uap)
                        dev_dbg(uap->port.dev, "could not trigger initial "
                                "RX DMA job, fall back to interrupt mode\n");
                if (uap->dmarx.poll_rate) {
-                       init_timer(&(uap->dmarx.timer));
-                       uap->dmarx.timer.function = pl011_dma_rx_poll;
-                       uap->dmarx.timer.data = (unsigned long)uap;
+                       setup_timer(&uap->dmarx.timer, pl011_dma_rx_poll,
+                                   (unsigned long)uap);
                        mod_timer(&uap->dmarx.timer,
                                jiffies +
                                msecs_to_jiffies(uap->dmarx.poll_rate));
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c
index 6d0f14c86099..2f5d7d598375 100644
--- a/fs/ncpfs/inode.c
+++ b/fs/ncpfs/inode.c
@@ -618,7 +618,8 @@ static int ncp_fill_super(struct super_block *sb, void 
*raw_data, int silent)
        server->tx.creq         = NULL;
        server->rcv.creq        = NULL;
 
-       init_timer(&server->timeout_tm);
+       setup_timer(&server->timeout_tm, ncpdgram_timeout_call,
+                   (unsigned long)server);
 #undef NCP_PACKET_SIZE
 #define NCP_PACKET_SIZE 131072
        error = -ENOMEM;
@@ -650,8 +651,6 @@ static int ncp_fill_super(struct super_block *sb, void 
*raw_data, int silent)
        } else {
                INIT_WORK(&server->rcv.tq, ncpdgram_rcv_proc);
                INIT_WORK(&server->timeout_tq, ncpdgram_timeout_proc);
-               server->timeout_tm.data = (unsigned long)server;
-               server->timeout_tm.function = ncpdgram_timeout_call;
        }
        release_sock(sock->sk);
 
-- 
2.7.4

Reply via email to