From patchwork Thu Aug 31 23:29:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kees Cook X-Patchwork-Id: 808465 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="jNkz2QYq"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjzFP6TPrz9s7p for ; Fri, 1 Sep 2017 09:32:57 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751966AbdHaXam (ORCPT ); Thu, 31 Aug 2017 19:30:42 -0400 Received: from mail-pg0-f43.google.com ([74.125.83.43]:32868 "EHLO mail-pg0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751965AbdHaXaG (ORCPT ); Thu, 31 Aug 2017 19:30:06 -0400 Received: by mail-pg0-f43.google.com with SMTP id t3so3238426pgt.0 for ; Thu, 31 Aug 2017 16:30:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=5fxsCR2ep0ns4ZwGsgrm2SkXR2LUZIub/8lFzCaWSRg=; b=jNkz2QYqiTUqfq82gvffAUESmj7+sCAZwAoeyHXsfOTSdOefGCPXTEbYSvcp0vjGtI O+SCFFhSmV+6SB0o/XhIuUYoIwtOzott4Pq5KNnhGL/BigLLoq4pKJYxy/hmlwGfcBvr gMlF4nsdaLMGrB+q/4L4AzY760TRTj72JtGTs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=5fxsCR2ep0ns4ZwGsgrm2SkXR2LUZIub/8lFzCaWSRg=; b=IP4WKyXNqK6if9v2PIKS0PKP8yyV2LFwCvLnsxAf/T6kPgCaL8SYzdx5yVUL0QPK0m PSW0uiOWx/sNqCONUQXrIIwwqMYuVhXMPfSXHFNQmx18dPUHtD2LShPZlXNAPbZQK+wS GuTgEXNEtXtS1ox0wozFvs1Ge+dyOFpRzoZssapppeRpxX/LweYOM3HtQc91nFXSkbH0 EYrOGhjN0TUaC23cteF26MghDtHTclAOPOp+v5f7p9seCXmLzF+8SDKOvpX1PIHKXZzI I0wwYftRy8wA5v1twhH801CQqiuB5qZ1+B1sn9lDGqDHAcJpNlyX1MrOlkXjb4swot8m okEg== X-Gm-Message-State: AHPjjUhJbihFAezq94IaGdIWXyOQ8kjzsh2u9p6WTN/y25K+nsYIZjeD N5ayOrsRYp17D7Kz X-Google-Smtp-Source: ADKCNb5qyKHCTXKA0o1fu9wolRN26nRFlTB3mMqBffF+j4TVPdvh7idLdZJoA1Wm5cL7sgCj9OiXbg== X-Received: by 10.98.204.21 with SMTP id a21mr139443pfg.242.1504222205848; Thu, 31 Aug 2017 16:30:05 -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 184sm970788pfg.0.2017.08.31.16.29.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 Aug 2017 16:30:02 -0700 (PDT) From: Kees Cook To: Thomas Gleixner Cc: Kees Cook , Krzysztof Halasa , Aditya Shankar , Ganesh Krishna , Greg Kroah-Hartman , Jens Axboe , netdev@vger.kernel.org, linux-wireless@vger.kernel.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: [PATCH 13/31] timer: Remove meaningless .data/.function assignments Date: Thu, 31 Aug 2017 16:29:25 -0700 Message-Id: <1504222183-61202-14-git-send-email-keescook@chromium.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504222183-61202-1-git-send-email-keescook@chromium.org> References: <1504222183-61202-1-git-send-email-keescook@chromium.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Several timer users needlessly reset their .function/.data fields during their timer callback, but nothing else changes them. Some users do not use their .data field at all. Each instance is removed here. Cc: Krzysztof Halasa Cc: Aditya Shankar Cc: Ganesh Krishna Cc: Greg Kroah-Hartman Cc: Jens Axboe Cc: netdev@vger.kernel.org Cc: linux-wireless@vger.kernel.org Cc: devel@driverdev.osuosl.org Signed-off-by: Kees Cook Acked-by: Greg Kroah-Hartman Acked-by: Krzysztof Halasa Acked-by: Jens Axboe --- drivers/block/amiflop.c | 3 +-- drivers/net/wan/hdlc_cisco.c | 2 -- drivers/net/wan/hdlc_fr.c | 2 -- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 +--- 4 files changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/block/amiflop.c b/drivers/block/amiflop.c index c4b1cba27178..6680d75bc857 100644 --- a/drivers/block/amiflop.c +++ b/drivers/block/amiflop.c @@ -323,7 +323,7 @@ static void fd_deselect (int drive) } -static void motor_on_callback(unsigned long nr) +static void motor_on_callback(unsigned long ignored) { if (!(ciaa.pra & DSKRDY) || --on_attempts == 0) { complete_all(&motor_on_completion); @@ -344,7 +344,6 @@ static int fd_motor_on(int nr) fd_select(nr); reinit_completion(&motor_on_completion); - motor_on_timer.data = nr; mod_timer(&motor_on_timer, jiffies + HZ/2); on_attempts = 10; diff --git a/drivers/net/wan/hdlc_cisco.c b/drivers/net/wan/hdlc_cisco.c index c696d42f4502..6c98d85f2773 100644 --- a/drivers/net/wan/hdlc_cisco.c +++ b/drivers/net/wan/hdlc_cisco.c @@ -276,8 +276,6 @@ static void cisco_timer(unsigned long arg) spin_unlock(&st->lock); st->timer.expires = jiffies + st->settings.interval * HZ; - st->timer.function = cisco_timer; - st->timer.data = arg; add_timer(&st->timer); } diff --git a/drivers/net/wan/hdlc_fr.c b/drivers/net/wan/hdlc_fr.c index de42faca076a..7da2424c28a4 100644 --- a/drivers/net/wan/hdlc_fr.c +++ b/drivers/net/wan/hdlc_fr.c @@ -644,8 +644,6 @@ static void fr_timer(unsigned long arg) state(hdlc)->settings.t391 * HZ; } - state(hdlc)->timer.function = fr_timer; - state(hdlc)->timer.data = arg; add_timer(&state(hdlc)->timer); } diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 68fd5b3b8b2d..2fca2b017093 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -275,7 +275,7 @@ static void update_scan_time(void) last_scanned_shadow[i].time_scan = jiffies; } -static void remove_network_from_shadow(unsigned long arg) +static void remove_network_from_shadow(unsigned long unused) { unsigned long now = jiffies; int i, j; @@ -296,7 +296,6 @@ static void remove_network_from_shadow(unsigned long arg) } if (last_scanned_cnt != 0) { - hAgingTimer.data = arg; mod_timer(&hAgingTimer, jiffies + msecs_to_jiffies(AGING_TIME)); } } @@ -313,7 +312,6 @@ static int is_network_in_shadow(struct network_info *pstrNetworkInfo, int i; if (last_scanned_cnt == 0) { - hAgingTimer.data = (unsigned long)user_void; mod_timer(&hAgingTimer, jiffies + msecs_to_jiffies(AGING_TIME)); state = -1; } else { From patchwork Thu Aug 31 23:29:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kees Cook X-Patchwork-Id: 808473 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="a8/CloNp"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjzRs4vs4z9s7p for ; Fri, 1 Sep 2017 09:42:01 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752057AbdHaXlu (ORCPT ); Thu, 31 Aug 2017 19:41:50 -0400 Received: from mail-pf0-f180.google.com ([209.85.192.180]:35475 "EHLO mail-pf0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751815AbdHaXjU (ORCPT ); Thu, 31 Aug 2017 19:39:20 -0400 Received: by mail-pf0-f180.google.com with SMTP id g13so3168375pfm.2 for ; Thu, 31 Aug 2017 16:39:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rWXy7cT3qNqZRt41uNYK+XNqg2GNkNagkyzJlyw1Yhs=; b=a8/CloNpgIXlx4lb3qiBFHweKhQ4Fn5WYV4iXVHWtmhrzKST9HbUdTkRUczg1BoAx5 zlU5n+iU1gK7M563TmO8pGo9SV7YJ2gquS/jKse3lANlbDvr/3VQmtyZVxWVNbuf7BEr /iCsOrlTXInPIDf6uZzkLNMYju8V7YN2pAPfE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=rWXy7cT3qNqZRt41uNYK+XNqg2GNkNagkyzJlyw1Yhs=; b=BV/lJZRNAoCva4oHnSPJx4HQKB/eZ1VnMJihO5Jj224mwXT9H2ieeJLAb016bthO46 PC2MJ0LH3aMN0nld1uaANste4LYL/BvtoU+knpR489U5KBkP43x9zCChmRIPc5CSouWU NG5M/6Kb7jfIT9NN7E+kKU95bkEipdJYy9DGP4UOl3rnB96BXT8AOC7hSD/dOU73jQgB KO76ke6f0N3qESZdLzuhNUeQN74lqliWPE+s7lZThWZ7P2CGyTIVyMCICn1DZLVOJEzf hsBRAL2f1z5PrQX1+TPkVtnCTyOfVK1aGYjd4A3GtBl3gsRvoBlexekJMwBP6fKYbpEG XCPw== X-Gm-Message-State: AHPjjUjmifseNLzXnGl9AC4A8evb0+zupQqVDDplyiQWegV21XBU+2dH /uab5dXapN+AyvDr X-Google-Smtp-Source: ADKCNb56kb90qJQFNGA2QkesglEnzKiSA/G/vyGvhs39syCtQVfBz3Hq+JZdulu8h1OmDw13mT01UQ== X-Received: by 10.99.53.72 with SMTP id c69mr172517pga.284.1504222760254; Thu, 31 Aug 2017 16:39:20 -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 l67sm861740pfb.178.2017.08.31.16.39.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 Aug 2017 16:39:17 -0700 (PDT) From: Kees Cook To: Thomas Gleixner Cc: Kees Cook , Samuel Ortiz , Tyrel Datwyler , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , "James E.J. Bottomley" , "Martin K. Petersen" , netdev@vger.kernel.org, linux-scsi@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH 19/31] timer: Remove open-coded casts for .data and .function Date: Thu, 31 Aug 2017 16:29:31 -0700 Message-Id: <1504222183-61202-20-git-send-email-keescook@chromium.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504222183-61202-1-git-send-email-keescook@chromium.org> References: <1504222183-61202-1-git-send-email-keescook@chromium.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This standardizes the callback and data prototypes in several places that perform casting, in an effort to remove more open-coded .data and .function uses in favor of setup_timer(). Cc: Samuel Ortiz Cc: Tyrel Datwyler Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: "James E.J. Bottomley" Cc: "Martin K. Petersen" Cc: netdev@vger.kernel.org Cc: linux-scsi@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Kees Cook Acked-by: Tyrel Datwyler Acked-by: Tyrel Datwyler --- drivers/net/irda/bfin_sir.c | 5 +++-- drivers/scsi/ibmvscsi/ibmvfc.c | 14 ++++++-------- drivers/scsi/ibmvscsi/ibmvscsi.c | 8 ++++---- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/drivers/net/irda/bfin_sir.c b/drivers/net/irda/bfin_sir.c index 3151b580dbd6..c9413bd580a7 100644 --- a/drivers/net/irda/bfin_sir.c +++ b/drivers/net/irda/bfin_sir.c @@ -317,8 +317,9 @@ static void bfin_sir_dma_rx_chars(struct net_device *dev) async_unwrap_char(dev, &self->stats, &self->rx_buff, port->rx_dma_buf.buf[i]); } -void bfin_sir_rx_dma_timeout(struct net_device *dev) +void bfin_sir_rx_dma_timeout(unsigned long data) { + struct net_device *dev = (struct net_device *)data; struct bfin_sir_self *self = netdev_priv(dev); struct bfin_sir_port *port = self->sir_port; int x_pos, pos; @@ -406,7 +407,7 @@ static int bfin_sir_startup(struct bfin_sir_port *port, struct net_device *dev) enable_dma(port->rx_dma_channel); port->rx_dma_timer.data = (unsigned long)(dev); - port->rx_dma_timer.function = (void *)bfin_sir_rx_dma_timeout; + port->rx_dma_timer.function = bfin_sir_rx_dma_timeout; #else diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c index cc4e05be8d4a..1be20688dd1f 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.c +++ b/drivers/scsi/ibmvscsi/ibmvfc.c @@ -1393,8 +1393,9 @@ static int ibmvfc_map_sg_data(struct scsi_cmnd *scmd, * * Called when an internally generated command times out **/ -static void ibmvfc_timeout(struct ibmvfc_event *evt) +static void ibmvfc_timeout(unsigned long data) { + struct ibmvfc_event *evt = (struct ibmvfc_event *)data; struct ibmvfc_host *vhost = evt->vhost; dev_err(vhost->dev, "Command timed out (%p). Resetting connection\n", evt); ibmvfc_reset_host(vhost); @@ -1424,12 +1425,10 @@ static int ibmvfc_send_event(struct ibmvfc_event *evt, BUG(); list_add_tail(&evt->queue, &vhost->sent); - init_timer(&evt->timer); + setup_timer(&evt->timer, ibmvfc_timeout, (unsigned long)evt); if (timeout) { - evt->timer.data = (unsigned long) evt; evt->timer.expires = jiffies + (timeout * HZ); - evt->timer.function = (void (*)(unsigned long))ibmvfc_timeout; add_timer(&evt->timer); } @@ -3696,8 +3695,9 @@ static void ibmvfc_tgt_adisc_cancel_done(struct ibmvfc_event *evt) * out, reset the CRQ. When the ADISC comes back as cancelled, * log back into the target. **/ -static void ibmvfc_adisc_timeout(struct ibmvfc_target *tgt) +static void ibmvfc_adisc_timeout(unsigned long data) { + struct ibmvfc_target *tgt = (struct ibmvfc_target *)data; struct ibmvfc_host *vhost = tgt->vhost; struct ibmvfc_event *evt; struct ibmvfc_tmf *tmf; @@ -3782,9 +3782,7 @@ static void ibmvfc_tgt_adisc(struct ibmvfc_target *tgt) if (timer_pending(&tgt->timer)) mod_timer(&tgt->timer, jiffies + (IBMVFC_ADISC_TIMEOUT * HZ)); else { - tgt->timer.data = (unsigned long) tgt; tgt->timer.expires = jiffies + (IBMVFC_ADISC_TIMEOUT * HZ); - tgt->timer.function = (void (*)(unsigned long))ibmvfc_adisc_timeout; add_timer(&tgt->timer); } @@ -3916,7 +3914,7 @@ static int ibmvfc_alloc_target(struct ibmvfc_host *vhost, u64 scsi_id) tgt->vhost = vhost; tgt->need_login = 1; tgt->cancel_key = vhost->task_set++; - init_timer(&tgt->timer); + setup_timer(&tgt->timer, ibmvfc_adisc_timeout, (unsigned long)tgt); kref_init(&tgt->kref); ibmvfc_init_tgt(tgt, ibmvfc_tgt_implicit_logout); spin_lock_irqsave(vhost->host->host_lock, flags); diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c index da22b3665cb0..44ae85903a00 100644 --- a/drivers/scsi/ibmvscsi/ibmvscsi.c +++ b/drivers/scsi/ibmvscsi/ibmvscsi.c @@ -837,8 +837,9 @@ static void ibmvscsi_reset_host(struct ibmvscsi_host_data *hostdata) * * Called when an internally generated command times out */ -static void ibmvscsi_timeout(struct srp_event_struct *evt_struct) +static void ibmvscsi_timeout(unsigned long data) { + struct srp_event_struct *evt_struct = (struct srp_event_struct *)data; struct ibmvscsi_host_data *hostdata = evt_struct->hostdata; dev_err(hostdata->dev, "Command timed out (%x). Resetting connection\n", @@ -927,11 +928,10 @@ static int ibmvscsi_send_srp_event(struct srp_event_struct *evt_struct, */ list_add_tail(&evt_struct->list, &hostdata->sent); - init_timer(&evt_struct->timer); + setup_timer(&evt_struct->timer, ibmvscsi_timeout, + (unsigned long)evt_struct); if (timeout) { - evt_struct->timer.data = (unsigned long) evt_struct; evt_struct->timer.expires = jiffies + (timeout * HZ); - evt_struct->timer.function = (void (*)(unsigned long))ibmvscsi_timeout; add_timer(&evt_struct->timer); } From patchwork Thu Aug 31 23:29:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kees Cook X-Patchwork-Id: 808474 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="hhlxdM0a"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjzSR53t6z9s8J for ; Fri, 1 Sep 2017 09:42:31 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752007AbdHaXm2 (ORCPT ); Thu, 31 Aug 2017 19:42:28 -0400 Received: from mail-pg0-f51.google.com ([74.125.83.51]:35421 "EHLO mail-pg0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751345AbdHaXjU (ORCPT ); Thu, 31 Aug 2017 19:39:20 -0400 Received: by mail-pg0-f51.google.com with SMTP id 63so3209662pgc.2 for ; Thu, 31 Aug 2017 16:39:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=7Ws0SrovvoTs9a/Wn2s6JtcLCwHn1178wN/01Hz8rdk=; b=hhlxdM0aruQZpGE1+bCGMLGbEo0/ebj/3BkJzOlglPLgusgZcydx87JtnsTCJ/zI9r fsFARSkKv8eUiFLhLGkHcjB+zKFrcqqqNRcBqegS4cKoX69QcbWDhORvBrcUFYyAqqLl j2vG7OrgzV7Kv8gC9yLDvhCDsjx/h3l3y79Gk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=7Ws0SrovvoTs9a/Wn2s6JtcLCwHn1178wN/01Hz8rdk=; b=PkFrE6F+7JUt4QHo8h31L+G277od1KPEvvj0AhtVPrpCysM/hgjS9vnGimiYbkjBAr 2hliQkeJ6aUI58NYSIZ75IBcFrn1+sndWJ2OpIShyPSrp9VGMHtMDtjwZaK8sDQAPmSA K18h6zgBDuPJXoEN5vJRboIXueiTtyfatnQtHR+YKI0DWtVMYZNwuBpIJyJvTMdcXoLd 3SK6iFMG61z2BW7YNnOYf07R8YwpXpK9Bxh2TaFZMatHOp7MyMhBcOSHysTl1/uBiubB qIOaCdBBSs2o0Ji84yaXP6EdVNKdbT0R9/NTUe+phWrStKfGT/qFy+UNM1Qq3I/vKbq9 AWQA== X-Gm-Message-State: AHPjjUiP89Eh6sQ4e/KYTLTQCslanNHRAwlrE4umgi1QYxxYug5kFVPY fsJ9gU5hfBccbRIf X-Google-Smtp-Source: ADKCNb7RoBTxsnKYeJzfRaNvCO92X+9lu0XzJVnm21od+KCHtWHaakK6WDL1HKQ3iCQsdtS3vGNyjg== X-Received: by 10.84.217.148 with SMTP id p20mr118090pli.293.1504222759504; Thu, 31 Aug 2017 16:39:19 -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 9sm894349pfq.127.2017.08.31.16.39.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 Aug 2017 16:39:17 -0700 (PDT) From: Kees Cook To: Thomas Gleixner Cc: Kees Cook , "David S. Miller" , Ralf Baechle , Andrew Hendry , Eric Dumazet , Paolo Abeni , David Howells , Colin Ian King , Ingo Molnar , linzhang , netdev@vger.kernel.org, linux-hams@vger.kernel.org, linux-x25@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 20/31] net/core: Collapse redundant sk_timer callback data assignments Date: Thu, 31 Aug 2017 16:29:32 -0700 Message-Id: <1504222183-61202-21-git-send-email-keescook@chromium.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504222183-61202-1-git-send-email-keescook@chromium.org> References: <1504222183-61202-1-git-send-email-keescook@chromium.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The core sk_timer initializer can provide the common .data assignment instead of it being set separately in users. Cc: "David S. Miller" Cc: Ralf Baechle Cc: Andrew Hendry Cc: Eric Dumazet Cc: Paolo Abeni Cc: David Howells Cc: Colin Ian King Cc: Ingo Molnar Cc: linzhang Cc: netdev@vger.kernel.org Cc: linux-hams@vger.kernel.org Cc: linux-x25@vger.kernel.org Signed-off-by: Kees Cook --- net/core/sock.c | 2 +- net/netrom/nr_timer.c | 1 - net/rose/rose_timer.c | 1 - net/x25/af_x25.c | 1 - net/x25/x25_timer.c | 1 - 5 files changed, 1 insertion(+), 5 deletions(-) diff --git a/net/core/sock.c b/net/core/sock.c index ac2a404c73eb..5281a998ab32 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -2623,7 +2623,7 @@ void sock_init_data(struct socket *sock, struct sock *sk) sk_init_common(sk); sk->sk_send_head = NULL; - init_timer(&sk->sk_timer); + setup_timer(&sk->sk_timer, NULL, (unsigned long)sk); sk->sk_allocation = GFP_KERNEL; sk->sk_rcvbuf = sysctl_rmem_default; diff --git a/net/netrom/nr_timer.c b/net/netrom/nr_timer.c index 94d05806a9a2..f84ce71f1f5f 100644 --- a/net/netrom/nr_timer.c +++ b/net/netrom/nr_timer.c @@ -45,7 +45,6 @@ void nr_init_timers(struct sock *sk) setup_timer(&nr->idletimer, nr_idletimer_expiry, (unsigned long)sk); /* initialized by sock_init_data */ - sk->sk_timer.data = (unsigned long)sk; sk->sk_timer.function = &nr_heartbeat_expiry; } diff --git a/net/rose/rose_timer.c b/net/rose/rose_timer.c index bc5469d6d9cb..6baa415b199a 100644 --- a/net/rose/rose_timer.c +++ b/net/rose/rose_timer.c @@ -36,7 +36,6 @@ void rose_start_heartbeat(struct sock *sk) { del_timer(&sk->sk_timer); - sk->sk_timer.data = (unsigned long)sk; sk->sk_timer.function = &rose_heartbeat_expiry; sk->sk_timer.expires = jiffies + 5 * HZ; diff --git a/net/x25/af_x25.c b/net/x25/af_x25.c index 5a1a98df3499..a5ac385b9120 100644 --- a/net/x25/af_x25.c +++ b/net/x25/af_x25.c @@ -414,7 +414,6 @@ static void __x25_destroy_socket(struct sock *sk) /* Defer: outstanding buffers */ sk->sk_timer.expires = jiffies + 10 * HZ; sk->sk_timer.function = x25_destroy_timer; - sk->sk_timer.data = (unsigned long)sk; add_timer(&sk->sk_timer); } else { /* drop last reference so sock_put will free */ diff --git a/net/x25/x25_timer.c b/net/x25/x25_timer.c index 5c5db1a36399..de5cec41d100 100644 --- a/net/x25/x25_timer.c +++ b/net/x25/x25_timer.c @@ -36,7 +36,6 @@ void x25_init_timers(struct sock *sk) setup_timer(&x25->timer, x25_timer_expiry, (unsigned long)sk); /* initialized by sock_init_data */ - sk->sk_timer.data = (unsigned long)sk; sk->sk_timer.function = &x25_heartbeat_expiry; } From patchwork Thu Aug 31 23:29:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kees Cook X-Patchwork-Id: 808478 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="LALAPGJZ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjzcM0RG4z9s8J for ; Fri, 1 Sep 2017 09:49:23 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752255AbdHaXtU (ORCPT ); Thu, 31 Aug 2017 19:49:20 -0400 Received: from mail-pg0-f42.google.com ([74.125.83.42]:37107 "EHLO mail-pg0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752242AbdHaXtT (ORCPT ); Thu, 31 Aug 2017 19:49:19 -0400 Received: by mail-pg0-f42.google.com with SMTP id 83so3183336pgb.4 for ; Thu, 31 Aug 2017 16:49:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=30d1GZJO9lEPDY5b94ywee1JVuBCeCsPQqtgq5YziHo=; b=LALAPGJZDY6QbXNtJPtexyEAeYYUtIhS+Q7TLIpzavemu5hxdk3DSuuw9mNYWY/Fs7 g6+uMSqyqI7BZe9U8Jq53uGujWj9VWY5++q5vCU+jpLXrlM3w1H86OBkEWIWBAYiM0S9 hs38pfnHq5cu0MRmpzzWy+rxpM5RMEAtB6Ar4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=30d1GZJO9lEPDY5b94ywee1JVuBCeCsPQqtgq5YziHo=; b=SJAxtzeK0Zb3Bs2bd3BoBrdIh2ZIx+uJX+bzV5pT8sBNyNQfYShP59kMTbpIqon22A dhxRfl4QjFpjxkcgttfzgf9W08pQEkosj9vQgvpUb+3PnJfwGaMKF16ca8rSu9ta1lWe Mv0JIofPfNkx33rVcnUwwEa+1HnHbf9TVphE82FUdBF8WCPcoPz170rq0cCujz2i69Ul gZFfRoH59HTp6S8zvXRRVERvE2r28ANuI0mN1YVoZyF+b2YOtfTzrOz9YVKw5uiJl60q gyhXgkj1rt2//rJwWv34YO9hDECiZ3FXIJjI3q/NYZNHBGZmRlMBLmnWWF8i9DL8tUz7 TUxA== X-Gm-Message-State: AHPjjUjlZ3ewQbvF7nyyyP2yUpilBCjAxngC41+yZoxDr2qy2zI+tCZm hUdDQpJHNP2RNkRo X-Google-Smtp-Source: ADKCNb5Ov+jzg5a5QQ6AET2iBl6YQf6lVEqZNqe/SIVzrYvDHmtXvq+t5LqvYrlq4zO0weCxtAJGJQ== X-Received: by 10.98.60.29 with SMTP id j29mr198208pfa.104.1504223358657; Thu, 31 Aug 2017 16:49:18 -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 v68sm913200pfv.111.2017.08.31.16.49.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 Aug 2017 16:49:17 -0700 (PDT) From: Kees Cook To: Thomas Gleixner Cc: Kees Cook , "David S. Miller" , Andrew Morton , Alexey Dobriyan , "Reshetova, Elena" , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 25/31] net/atm/mpc: Use separate static data field with with static timer Date: Thu, 31 Aug 2017 16:29:37 -0700 Message-Id: <1504222183-61202-26-git-send-email-keescook@chromium.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504222183-61202-1-git-send-email-keescook@chromium.org> References: <1504222183-61202-1-git-send-email-keescook@chromium.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for changing the timer callback argument to the timer pointer, move to a separate static data variable. Cc: "David S. Miller" Cc: Andrew Morton Cc: Alexey Dobriyan Cc: "Reshetova, Elena" Cc: netdev@vger.kernel.org Signed-off-by: Kees Cook --- net/atm/mpc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/net/atm/mpc.c b/net/atm/mpc.c index 5baa31b8500c..fc24a46500ae 100644 --- a/net/atm/mpc.c +++ b/net/atm/mpc.c @@ -95,7 +95,7 @@ static netdev_tx_t mpc_send_packet(struct sk_buff *skb, static int mpoa_event_listener(struct notifier_block *mpoa_notifier, unsigned long event, void *dev); static void mpc_timer_refresh(void); -static void mpc_cache_check(unsigned long checking_time); +static void mpc_cache_check(unsigned long unused); static struct llc_snap_hdr llc_snap_mpoa_ctrl = { 0xaa, 0xaa, 0x03, @@ -121,7 +121,8 @@ static struct notifier_block mpoa_notifier = { struct mpoa_client *mpcs = NULL; /* FIXME */ static struct atm_mpoa_qos *qos_head = NULL; -static DEFINE_TIMER(mpc_timer, NULL); +static DEFINE_TIMER(mpc_timer, mpc_cache_check); +static unsigned long checking_time; static struct mpoa_client *find_mpc_by_itfnum(int itf) @@ -1411,12 +1412,11 @@ static void clean_up(struct k_message *msg, struct mpoa_client *mpc, int action) static void mpc_timer_refresh(void) { mpc_timer.expires = jiffies + (MPC_P2 * HZ); - mpc_timer.data = mpc_timer.expires; - mpc_timer.function = mpc_cache_check; + checking_time = mpc_timer.expires; add_timer(&mpc_timer); } -static void mpc_cache_check(unsigned long checking_time) +static void mpc_cache_check(unsigned long unused) { struct mpoa_client *mpc = mpcs; static unsigned long previous_resolving_check_time; From patchwork Thu Aug 31 23:29:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kees Cook X-Patchwork-Id: 808469 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="Zgz0Ig35"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjzQ36H7dz9s7p for ; Fri, 1 Sep 2017 09:40:27 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751965AbdHaXjZ (ORCPT ); Thu, 31 Aug 2017 19:39:25 -0400 Received: from mail-pg0-f41.google.com ([74.125.83.41]:34199 "EHLO mail-pg0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751907AbdHaXjX (ORCPT ); Thu, 31 Aug 2017 19:39:23 -0400 Received: by mail-pg0-f41.google.com with SMTP id t193so3252857pgc.1 for ; Thu, 31 Aug 2017 16:39:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=m2B41u6h9gWbjjyxZ/l3jlI5tETm55bX6Tqmwkndzik=; b=Zgz0Ig35vfG9oMGBbCxs/cCwBdiFr8Cy/WPb7xz+ZGfVD1Opy3dEoteDzN+FrcGZ25 MKt5luUKgnjIkgeKmJ7IEnFkvd/aEU1hjEz51FvqQFTrn9lviXApi7EyZUTy3nEI61TK Q8/AQU4jOvboh2FN9i+6FvU+pY9D/Jcem6CVk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=m2B41u6h9gWbjjyxZ/l3jlI5tETm55bX6Tqmwkndzik=; b=BcqLEHc6ndMeYx5PjFaGicij5VDwUJqlwSHTNweTO8cE2lavXyCZQm6n98/V87aRMH nxV4b11Gsw/G2FIu/XHA+NjTlPMPcxoAp09a2XnxxKw/DnUV+78XI5dlI0r0LFWVjilB 3Cv940UGfifwIeXFnoPRfV6HIVwtkTOkiM/uj/GS/ropkdxsU7cL2dejU6l9ab/BgANL baEG9aK6r7WXO/NMiRZblVZXL8k/5Ovlh5j+Z7YTLVYc5Bsh9q3sAZqmhKoNYRGvK4VH 8O8ctDh915c/+Mq8ZUgDv1owKiC31WY9y4z9QSuZaCzBXAM2GQmnR4EVPe77h18d5Fts l6iA== X-Gm-Message-State: AHPjjUgMm5ScOVED+2pd2v2vsIGKFAT5RcpXTG3tGt8dRI8m9YBIGhza STbd2mO1XErRk6EU X-Google-Smtp-Source: ADKCNb7nADRF2gQaMmkQrT2BU0uTQGInsNeuBvebdQT7n0aRCj3lvP92L9fhPKPp11DB5htxjewmFw== X-Received: by 10.99.109.12 with SMTP id i12mr139786pgc.347.1504222763251; Thu, 31 Aug 2017 16:39:23 -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 e190sm925209pfa.41.2017.08.31.16.39.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 Aug 2017 16:39:20 -0700 (PDT) From: Kees Cook To: Thomas Gleixner Cc: Kees Cook , David Howells , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 30/31] appletalk: Remove unneeded synchronization Date: Thu, 31 Aug 2017 16:29:42 -0700 Message-Id: <1504222183-61202-31-git-send-email-keescook@chromium.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504222183-61202-1-git-send-email-keescook@chromium.org> References: <1504222183-61202-1-git-send-email-keescook@chromium.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The use of del_timer_sync() will make sure a timer is not rescheduled. As such, there is no need to add external signals to kill timers. In preparation for switching the timer callback argument to the timer pointer, this drops the .data argument since it doesn't serve a meaningful purpose here. Cc: David Howells Cc: netdev@vger.kernel.org Signed-off-by: Kees Cook --- drivers/net/appletalk/ltpc.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c index e4aa374caa4d..cc3dc9337eae 100644 --- a/drivers/net/appletalk/ltpc.c +++ b/drivers/net/appletalk/ltpc.c @@ -880,14 +880,10 @@ static void ltpc_poll(unsigned long l) } ltpc_poll_counter--; } - - if (!dev) - return; /* we've been downed */ /* poll 20 times per second */ idle(dev); ltpc_timer.expires = jiffies + HZ/20; - add_timer(<pc_timer); } @@ -1252,8 +1248,6 @@ static void __exit ltpc_cleanup(void) if(debug & DEBUG_VERBOSE) printk("unregister_netdev\n"); unregister_netdev(dev_ltpc); - ltpc_timer.data = 0; /* signal the poll routine that we're done */ - del_timer_sync(<pc_timer); if(debug & DEBUG_VERBOSE) printk("freeing irq\n"); From patchwork Thu Aug 31 23:29:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kees Cook X-Patchwork-Id: 808468 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="G8qoMEHo"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xjzPJ3Ww8z9s8J for ; Fri, 1 Sep 2017 09:39:48 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752040AbdHaXjr (ORCPT ); Thu, 31 Aug 2017 19:39:47 -0400 Received: from mail-pf0-f170.google.com ([209.85.192.170]:33127 "EHLO mail-pf0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751904AbdHaXj1 (ORCPT ); Thu, 31 Aug 2017 19:39:27 -0400 Received: by mail-pf0-f170.google.com with SMTP id n73so3230307pfj.0 for ; Thu, 31 Aug 2017 16:39:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=YYR7Wl3TrS38XyFtQ9gBif8HUmvSB3ieDqRNqWu220w=; b=G8qoMEHoqYtADX/WMjaVzojpp6glIjzicIAxV69iy/fNuS/CEzo4/D5oGpEMrALfXh zlXK9IIQGty/qyPINx84DNDXGTs2tPUysUHtFqFxyu8DcJLi2P9gXiBvRNyuhtflRy82 0YUOM9ACKi45uI9Tv8j3bySLPsnz/ApE8ufdo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=YYR7Wl3TrS38XyFtQ9gBif8HUmvSB3ieDqRNqWu220w=; b=fbGi8j1FXoTH1PCXVhRbE721naV0hQGqpjFJwCQ5YesGAmgzGiWTcfiMCBHUidBTjY SURhDp4KjjUl2S613vondLtAQGBXT7F364h9h25iE8upqplr6hC7JsbCw5AGqUeYGCwY g59CrBi744InGIfPFZybIZCa0fiaJ6oQDfGE3h9UYrRWHuTIQrjBdKTWwoQAaSmC+8DG mGaryuK+Vk/zC/dnEA1vOUZpGEY1JxOqfxmL6smxpe82ZmXZyS2J0YZcvsooabW0MKLJ t6s36F5M/iEz/XGJYeKnSpVJ9ygiCj5V0tVcqy25LAyM0pKkc3MBJ/dqK7tmLTQSPD+P Jz3Q== X-Gm-Message-State: AHPjjUifMgqrfPcv7iOcJ6ZAdQ3V6k7oDqBMCje7owepGUTKo9+Jd48A hVtkp/QDPSDRPV9c X-Google-Smtp-Source: ADKCNb73zhmQv5uXzaCUvbaSffkpDyW8GnZiZGeJMsMueD933HHGewIU4ozEcTAucxtdPfEZkwUscg== X-Received: by 10.98.220.137 with SMTP id c9mr165082pfl.190.1504222766207; Thu, 31 Aug 2017 16:39:26 -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 10sm938904pfl.59.2017.08.31.16.39.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 Aug 2017 16:39:24 -0700 (PDT) From: Kees Cook To: Thomas Gleixner Cc: Kees Cook , "Rafael J. Wysocki" , Pavel Machek , Len Brown , Greg Kroah-Hartman , Mike Marciniszyn , Dennis Dalessandro , Doug Ledford , Sean Hefty , Hal Rosenstock , Dmitry Torokhov , Jeff Kirsher , linux-pm@vger.kernel.org, linux-rdma@vger.kernel.org, linux-input@vger.kernel.org, intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 31/31] timer: Switch to testing for .function instead of .data Date: Thu, 31 Aug 2017 16:29:43 -0700 Message-Id: <1504222183-61202-32-git-send-email-keescook@chromium.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504222183-61202-1-git-send-email-keescook@chromium.org> References: <1504222183-61202-1-git-send-email-keescook@chromium.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In several places, .data is checked for initialization to gate early calls to del_timer_sync(). Checking for .function is equally valid, so switch to this in all callers. Cc: "Rafael J. Wysocki" Cc: Pavel Machek Cc: Len Brown Cc: Greg Kroah-Hartman Cc: Mike Marciniszyn Cc: Dennis Dalessandro Cc: Doug Ledford Cc: Sean Hefty Cc: Hal Rosenstock Cc: Dmitry Torokhov Cc: Jeff Kirsher Cc: linux-pm@vger.kernel.org Cc: linux-rdma@vger.kernel.org Cc: linux-input@vger.kernel.org Cc: intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org Signed-off-by: Kees Cook Acked-by: Dmitry Torokhov Acked-by: Jeff Kirsher Acked-by: Rafael J. Wysocki --- drivers/base/power/wakeup.c | 3 +-- drivers/infiniband/hw/hfi1/chip.c | 6 ++---- drivers/infiniband/hw/hfi1/init.c | 2 +- drivers/infiniband/hw/qib/qib_iba7220.c | 2 +- drivers/infiniband/hw/qib/qib_iba7322.c | 2 +- drivers/infiniband/hw/qib/qib_init.c | 14 +++++--------- drivers/infiniband/hw/qib/qib_mad.c | 2 +- drivers/input/input.c | 5 ++--- drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- 9 files changed, 15 insertions(+), 23 deletions(-) diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c index 144e6d8fafc8..79a3c1b204af 100644 --- a/drivers/base/power/wakeup.c +++ b/drivers/base/power/wakeup.c @@ -479,8 +479,7 @@ static bool wakeup_source_not_registered(struct wakeup_source *ws) * Use timer struct to check if the given source is initialized * by wakeup_source_add. */ - return ws->timer.function != pm_wakeup_timer_fn || - ws->timer.data != (unsigned long)ws; + return ws->timer.function != pm_wakeup_timer_fn; } /* diff --git a/drivers/infiniband/hw/hfi1/chip.c b/drivers/infiniband/hw/hfi1/chip.c index 94b54850ec75..53a6596cd7d6 100644 --- a/drivers/infiniband/hw/hfi1/chip.c +++ b/drivers/infiniband/hw/hfi1/chip.c @@ -5513,9 +5513,8 @@ static int init_rcverr(struct hfi1_devdata *dd) static void free_rcverr(struct hfi1_devdata *dd) { - if (dd->rcverr_timer.data) + if (dd->rcverr_timer.function) del_timer_sync(&dd->rcverr_timer); - dd->rcverr_timer.data = 0; } static void handle_rxe_err(struct hfi1_devdata *dd, u32 unused, u64 reg) @@ -11992,9 +11991,8 @@ static void free_cntrs(struct hfi1_devdata *dd) struct hfi1_pportdata *ppd; int i; - if (dd->synth_stats_timer.data) + if (dd->synth_stats_timer.function) del_timer_sync(&dd->synth_stats_timer); - dd->synth_stats_timer.data = 0; ppd = (struct hfi1_pportdata *)(dd + 1); for (i = 0; i < dd->num_pports; i++, ppd++) { kfree(ppd->cntrs); diff --git a/drivers/infiniband/hw/hfi1/init.c b/drivers/infiniband/hw/hfi1/init.c index 4a11d4da4c92..bc2af709c111 100644 --- a/drivers/infiniband/hw/hfi1/init.c +++ b/drivers/infiniband/hw/hfi1/init.c @@ -839,7 +839,7 @@ static void stop_timers(struct hfi1_devdata *dd) for (pidx = 0; pidx < dd->num_pports; ++pidx) { ppd = dd->pport + pidx; - if (ppd->led_override_timer.data) { + if (ppd->led_override_timer.function) { del_timer_sync(&ppd->led_override_timer); atomic_set(&ppd->led_override_timer_active, 0); } diff --git a/drivers/infiniband/hw/qib/qib_iba7220.c b/drivers/infiniband/hw/qib/qib_iba7220.c index b1d512c7ff4b..22fd65fe7193 100644 --- a/drivers/infiniband/hw/qib/qib_iba7220.c +++ b/drivers/infiniband/hw/qib/qib_iba7220.c @@ -1662,7 +1662,7 @@ static void qib_7220_quiet_serdes(struct qib_pportdata *ppd) dd->control | QLOGIC_IB_C_FREEZEMODE); ppd->cpspec->chase_end = 0; - if (ppd->cpspec->chase_timer.data) /* if initted */ + if (ppd->cpspec->chase_timer.function) /* if initted */ del_timer_sync(&ppd->cpspec->chase_timer); if (ppd->cpspec->ibsymdelta || ppd->cpspec->iblnkerrdelta || diff --git a/drivers/infiniband/hw/qib/qib_iba7322.c b/drivers/infiniband/hw/qib/qib_iba7322.c index bb2439fff8fa..471aaf6bcbf2 100644 --- a/drivers/infiniband/hw/qib/qib_iba7322.c +++ b/drivers/infiniband/hw/qib/qib_iba7322.c @@ -2531,7 +2531,7 @@ static void qib_7322_mini_quiet_serdes(struct qib_pportdata *ppd) cancel_delayed_work_sync(&ppd->cpspec->ipg_work); ppd->cpspec->chase_end = 0; - if (ppd->cpspec->chase_timer.data) /* if initted */ + if (ppd->cpspec->chase_timer.function) /* if initted */ del_timer_sync(&ppd->cpspec->chase_timer); /* diff --git a/drivers/infiniband/hw/qib/qib_init.c b/drivers/infiniband/hw/qib/qib_init.c index 6c16ba1107ba..66fb0318660b 100644 --- a/drivers/infiniband/hw/qib/qib_init.c +++ b/drivers/infiniband/hw/qib/qib_init.c @@ -815,23 +815,19 @@ static void qib_stop_timers(struct qib_devdata *dd) struct qib_pportdata *ppd; int pidx; - if (dd->stats_timer.data) { + if (dd->stats_timer.function) del_timer_sync(&dd->stats_timer); - dd->stats_timer.data = 0; - } - if (dd->intrchk_timer.data) { + if (dd->intrchk_timer.function) del_timer_sync(&dd->intrchk_timer); - dd->intrchk_timer.data = 0; - } for (pidx = 0; pidx < dd->num_pports; ++pidx) { ppd = dd->pport + pidx; - if (ppd->hol_timer.data) + if (ppd->hol_timer.function) del_timer_sync(&ppd->hol_timer); - if (ppd->led_override_timer.data) { + if (ppd->led_override_timer.function) { del_timer_sync(&ppd->led_override_timer); atomic_set(&ppd->led_override_timer_active, 0); } - if (ppd->symerr_clear_timer.data) + if (ppd->symerr_clear_timer.function) del_timer_sync(&ppd->symerr_clear_timer); } } diff --git a/drivers/infiniband/hw/qib/qib_mad.c b/drivers/infiniband/hw/qib/qib_mad.c index f5a2aed31a89..37483f32935c 100644 --- a/drivers/infiniband/hw/qib/qib_mad.c +++ b/drivers/infiniband/hw/qib/qib_mad.c @@ -2496,7 +2496,7 @@ void qib_notify_free_mad_agent(struct rvt_dev_info *rdi, int port_idx) struct qib_devdata *dd = container_of(ibdev, struct qib_devdata, verbs_dev); - if (dd->pport[port_idx].cong_stats.timer.data) + if (dd->pport[port_idx].cong_stats.timer.function) del_timer_sync(&dd->pport[port_idx].cong_stats.timer); if (dd->pport[port_idx].ibport_data.smi_ah) diff --git a/drivers/input/input.c b/drivers/input/input.c index 7e6842bd525c..a91fbbfc1b32 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -76,7 +76,7 @@ static void input_start_autorepeat(struct input_dev *dev, int code) { if (test_bit(EV_REP, dev->evbit) && dev->rep[REP_PERIOD] && dev->rep[REP_DELAY] && - dev->timer.data) { + dev->timer.function) { dev->repeat_key = code; mod_timer(&dev->timer, jiffies + msecs_to_jiffies(dev->rep[REP_DELAY])); @@ -1790,7 +1790,7 @@ struct input_dev *input_allocate_device(void) device_initialize(&dev->dev); mutex_init(&dev->mutex); spin_lock_init(&dev->event_lock); - init_timer(&dev->timer); + setup_timer(&dev->timer, NULL, (unsigned long)dev); INIT_LIST_HEAD(&dev->h_list); INIT_LIST_HEAD(&dev->node); @@ -2053,7 +2053,6 @@ static void devm_input_device_unregister(struct device *dev, void *res) */ void input_enable_softrepeat(struct input_dev *dev, int delay, int period) { - dev->timer.data = (unsigned long) dev; dev->timer.function = input_repeat_key; dev->rep[REP_DELAY] = delay; dev->rep[REP_PERIOD] = period; diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 2db93d3f6d23..b9a4c1a6e4ba 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -11797,7 +11797,7 @@ static void i40e_remove(struct pci_dev *pdev) /* no more scheduling of any task */ set_bit(__I40E_SUSPENDED, pf->state); set_bit(__I40E_DOWN, pf->state); - if (pf->service_timer.data) + if (pf->service_timer.function) del_timer_sync(&pf->service_timer); if (pf->service_task.func) cancel_work_sync(&pf->service_task);