From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932927AbdJPXZj (ORCPT ); Mon, 16 Oct 2017 19:25:39 -0400 Received: from mail-pg0-f50.google.com ([74.125.83.50]:55196 "EHLO mail-pg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932888AbdJPXZK (ORCPT ); Mon, 16 Oct 2017 19:25:10 -0400 X-Google-Smtp-Source: AOwi7QD00+bliWb9fmgg+lIbXHwimRJaiUvQxth841PgrGvhV/plgYlKwDX5tzv5QYPekyJE7zG03g== Date: Mon, 16 Oct 2017 16:25:08 -0700 From: Kees Cook To: Greg Kroah-Hartman Cc: Bhumika Goyal , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: [PATCH] staging/fwserial: Convert timers to use timer_setup() Message-ID: <20171016232508.GA100904@beast> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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 41a49c8194e5..bba7e9c888b3 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 -- Kees Cook Pixel Security