From b28bbb7362ad44806b30470408c76f17f146b99b Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Mon, 16 Oct 2017 16:25:08 -0700 Subject: [PATCH] staging/fwserial: Convert timers to use timer_setup() 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. Also removes redundant initialization of fw transaction timer, which already gets initialized per-transaction. Cc: Greg Kroah-Hartman Cc: Bhumika Goyal Cc: devel@driverdev.osuosl.org Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fwserial/fwserial.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/drivers/staging/fwserial/fwserial.c b/drivers/staging/fwserial/fwserial.c index 41a49c8..bba7e9c 100644 --- a/drivers/staging/fwserial/fwserial.c +++ b/drivers/staging/fwserial/fwserial.c @@ -217,13 +217,6 @@ static void fwtty_log_tx_error(struct fwtty_port *port, int rcode) } } -static void fwtty_txn_constructor(void *this) -{ - struct fwtty_transaction *txn = this; - - init_timer(&txn->fw_txn.split_timeout_timer); -} - static void fwtty_common_callback(struct fw_card *card, int rcode, void *payload, size_t len, void *cb_data) { @@ -1806,9 +1799,9 @@ static void fwserial_release_port(struct fwtty_port *port, bool reset) (*port->fwcon_ops->notify)(FWCON_NOTIFY_DETACH, port->con_data); } -static void fwserial_plug_timeout(unsigned long data) +static void fwserial_plug_timeout(struct timer_list *t) { - struct fwtty_peer *peer = (struct fwtty_peer *)data; + struct fwtty_peer *peer = from_timer(peer, t, timer); struct fwtty_port *port; spin_lock_bh(&peer->lock); @@ -1860,7 +1853,6 @@ static int fwserial_connect_peer(struct fwtty_peer *peer) fill_plug_req(pkt, peer->port); - setup_timer(&peer->timer, fwserial_plug_timeout, (unsigned long)peer); mod_timer(&peer->timer, jiffies + VIRT_CABLE_PLUG_TIMEOUT); spin_unlock_bh(&peer->lock); @@ -2098,7 +2090,7 @@ static int fwserial_add_peer(struct fw_serial *serial, struct fw_unit *unit) spin_lock_init(&peer->lock); peer->port = NULL; - init_timer(&peer->timer); + timer_setup(&peer->timer, fwserial_plug_timeout, 0); INIT_WORK(&peer->work, fwserial_peer_workfn); INIT_DELAYED_WORK(&peer->connect, fwserial_auto_connect); @@ -2863,7 +2855,7 @@ static int __init fwserial_init(void) fwtty_txn_cache = kmem_cache_create("fwtty_txn_cache", sizeof(struct fwtty_transaction), - 0, 0, fwtty_txn_constructor); + 0, 0, NULL); if (!fwtty_txn_cache) { err = -ENOMEM; goto unregister_loop; -- 2.7.4