From patchwork Tue Oct 24 09:28:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kees Cook X-Patchwork-Id: 10023849 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 2997A60381 for ; Tue, 24 Oct 2017 09:33:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 22407288A9 for ; Tue, 24 Oct 2017 09:33:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 16BBE289D8; Tue, 24 Oct 2017 09:33:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_HI,RCVD_IN_SORBS_SPAM autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9E555288A9 for ; Tue, 24 Oct 2017 09:33:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932403AbdJXJdu (ORCPT ); Tue, 24 Oct 2017 05:33:50 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:56617 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751952AbdJXJ2r (ORCPT ); Tue, 24 Oct 2017 05:28:47 -0400 Received: by mail-pf0-f194.google.com with SMTP id b85so19236455pfj.13 for ; Tue, 24 Oct 2017 02:28:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=date:from:to:cc:subject:message-id:mime-version:content-disposition; bh=WrxQVKiPOs0t+wAtW/QwcyUqJJ4MB7s6fQM5HZ5/sBk=; b=NohD21WkiMLjrhWjLn2oxWKGPKkd1Dxm5PnnMkKvLj9wpYiV4wytWCv9hDiR1AI2nI AmMzHBq4kYMFukIzjes5/NfEefIdrb7oOZfTlgE5bH8tv0Y6xjfVTB8J5bLxZ1xEUQ2G NNE8TjIcFKzk5GiBWV+CBUJYv80/cBc1jICEo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition; bh=WrxQVKiPOs0t+wAtW/QwcyUqJJ4MB7s6fQM5HZ5/sBk=; b=e3qoPodrV2sNRC7HrKZtm02K00chwHjYKh25dP/1h+M06UxbPpXGzxZzTL0Y2+yu4n 2TUcSCncziAcSLbs3cY0CP/LVLaBGVPihOTh8alt8fsGGlR58n3HsGWvU+B/uzO2r3JK PZCUbQH6AhsVXh6s167SkSJUoEgq9m2aiADD4yVSzr1oRDEatXUhQvQFmLZhbbnYofW1 nLKb7le2uAk/wL7iN/qmFq7uUdAgzaUmd43CQ2Tpjd36nvga/v3jzjSnwrFOcPelzisT xJ3Vh43lnltcdRCmcY2nKGOHa2vDZM9XF7SUDgm/XLt+jw0uYlIeya+juUsrwAgfyqRK KtyQ== X-Gm-Message-State: AMCzsaWAg8Kwq9xg4PQg10/h7C+jvu3T1Sk7ciHpf47dvaUDG9Wtq6iC CZmzozthXaFIrlFOEfRVzvhY8Q== X-Google-Smtp-Source: ABhQp+QS8HXSr+H3HAflUgN/hkoH2Z7v6GqCvsI0JetHBwzO9lLTUuvmoFHHKgUam571sVnYTSysUA== X-Received: by 10.84.131.109 with SMTP id 100mr12992104pld.140.1508837327392; Tue, 24 Oct 2017 02:28:47 -0700 (PDT) Received: from www.outflux.net (173-164-112-133-Oregon.hfc.comcastbusiness.net. [173.164.112.133]) by smtp.gmail.com with ESMTPSA id i72sm17148016pfi.137.2017.10.24.02.28.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 24 Oct 2017 02:28:46 -0700 (PDT) Date: Tue, 24 Oct 2017 02:28:45 -0700 From: Kees Cook To: Kalle Valo Cc: Stanislaw Gruszka , linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] drivers/wireless: iwlegacy: Convert timers to use timer_setup() Message-ID: <20171024092845.GA47078@beast> MIME-Version: 1.0 Content-Disposition: inline Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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: Kalle Valo Cc: Stanislaw Gruszka Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org Signed-off-by: Kees Cook --- drivers/net/wireless/intel/iwlegacy/3945-mac.c | 2 +- drivers/net/wireless/intel/iwlegacy/3945-rs.c | 10 +++------- drivers/net/wireless/intel/iwlegacy/4965-mac.c | 9 ++++----- drivers/net/wireless/intel/iwlegacy/common.c | 4 ++-- drivers/net/wireless/intel/iwlegacy/common.h | 2 +- 5 files changed, 11 insertions(+), 16 deletions(-) diff --git a/drivers/net/wireless/intel/iwlegacy/3945-mac.c b/drivers/net/wireless/intel/iwlegacy/3945-mac.c index 329f3a63dadd..4b53ebf00c7f 100644 --- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c +++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c @@ -3429,7 +3429,7 @@ il3945_setup_deferred_work(struct il_priv *il) il3945_hw_setup_deferred_work(il); - setup_timer(&il->watchdog, il_bg_watchdog, (unsigned long)il); + timer_setup(&il->watchdog, il_bg_watchdog, 0); tasklet_init(&il->irq_tasklet, (void (*)(unsigned long))il3945_irq_tasklet, diff --git a/drivers/net/wireless/intel/iwlegacy/3945-rs.c b/drivers/net/wireless/intel/iwlegacy/3945-rs.c index b2f35dfbc01b..e8983c6a2b7b 100644 --- a/drivers/net/wireless/intel/iwlegacy/3945-rs.c +++ b/drivers/net/wireless/intel/iwlegacy/3945-rs.c @@ -181,9 +181,9 @@ il3945_rate_scale_flush_wins(struct il3945_rs_sta *rs_sta) #define IL_AVERAGE_PACKETS 1500 static void -il3945_bg_rate_scale_flush(unsigned long data) +il3945_bg_rate_scale_flush(struct timer_list *t) { - struct il3945_rs_sta *rs_sta = (void *)data; + struct il3945_rs_sta *rs_sta = from_timer(rs_sta, t, rate_scale_flush); struct il_priv *il __maybe_unused = rs_sta->il; int unflushed = 0; unsigned long flags; @@ -360,9 +360,6 @@ il3945_rs_rate_init(struct il_priv *il, struct ieee80211_sta *sta, u8 sta_id) rs_sta->flush_time = RATE_FLUSH; rs_sta->last_tx_packets = 0; - rs_sta->rate_scale_flush.data = (unsigned long)rs_sta; - rs_sta->rate_scale_flush.function = il3945_bg_rate_scale_flush; - for (i = 0; i < RATE_COUNT_3945; i++) il3945_clear_win(&rs_sta->win[i]); @@ -415,8 +412,7 @@ il3945_rs_alloc_sta(void *il_priv, struct ieee80211_sta *sta, gfp_t gfp) rs_sta = &psta->rs_sta; spin_lock_init(&rs_sta->lock); - init_timer(&rs_sta->rate_scale_flush); - + timer_setup(&rs_sta->rate_scale_flush, il3945_bg_rate_scale_flush, 0); D_RATE("leave\n"); return rs_sta; diff --git a/drivers/net/wireless/intel/iwlegacy/4965-mac.c b/drivers/net/wireless/intel/iwlegacy/4965-mac.c index 65eba2c24292..de63f2518f23 100644 --- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c +++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c @@ -4074,9 +4074,9 @@ il4965_hdl_alive(struct il_priv *il, struct il_rx_buf *rxb) * used for calibrating the TXPOWER. */ static void -il4965_bg_stats_periodic(unsigned long data) +il4965_bg_stats_periodic(struct timer_list *t) { - struct il_priv *il = (struct il_priv *)data; + struct il_priv *il = from_timer(il, t, stats_periodic); if (test_bit(S_EXIT_PENDING, &il->status)) return; @@ -6258,10 +6258,9 @@ il4965_setup_deferred_work(struct il_priv *il) INIT_WORK(&il->txpower_work, il4965_bg_txpower_work); - setup_timer(&il->stats_periodic, il4965_bg_stats_periodic, - (unsigned long)il); + timer_setup(&il->stats_periodic, il4965_bg_stats_periodic, 0); - setup_timer(&il->watchdog, il_bg_watchdog, (unsigned long)il); + timer_setup(&il->watchdog, il_bg_watchdog, 0); tasklet_init(&il->irq_tasklet, (void (*)(unsigned long))il4965_irq_tasklet, diff --git a/drivers/net/wireless/intel/iwlegacy/common.c b/drivers/net/wireless/intel/iwlegacy/common.c index 8d5acda92a9b..558bb16bfd46 100644 --- a/drivers/net/wireless/intel/iwlegacy/common.c +++ b/drivers/net/wireless/intel/iwlegacy/common.c @@ -4844,9 +4844,9 @@ il_check_stuck_queue(struct il_priv *il, int cnt) * we reset the firmware. If everything is fine just rearm the timer. */ void -il_bg_watchdog(unsigned long data) +il_bg_watchdog(struct timer_list *t) { - struct il_priv *il = (struct il_priv *)data; + struct il_priv *il = from_timer(il, t, watchdog); int cnt; unsigned long timeout; diff --git a/drivers/net/wireless/intel/iwlegacy/common.h b/drivers/net/wireless/intel/iwlegacy/common.h index 18c60c92e3a3..dc6a74a05983 100644 --- a/drivers/net/wireless/intel/iwlegacy/common.h +++ b/drivers/net/wireless/intel/iwlegacy/common.h @@ -1832,7 +1832,7 @@ int il_enqueue_hcmd(struct il_priv *il, struct il_host_cmd *cmd); * PCI * *****************************************************/ -void il_bg_watchdog(unsigned long data); +void il_bg_watchdog(struct timer_list *t); u32 il_usecs_to_beacons(struct il_priv *il, u32 usec, u32 beacon_interval); __le32 il_add_beacon_time(struct il_priv *il, u32 base, u32 addon, u32 beacon_interval);