{"id":808473,"url":"http://patchwork.ozlabs.org/api/1.2/patches/808473/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/1504222183-61202-20-git-send-email-keescook@chromium.org/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.2/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1504222183-61202-20-git-send-email-keescook@chromium.org>","list_archive_url":null,"date":"2017-08-31T23:29:31","name":"[19/31] timer: Remove open-coded casts for .data and .function","commit_ref":null,"pull_url":null,"state":"not-applicable","archived":true,"hash":"43a80a010d22fc5191efdba588fdb3b24af58605","submitter":{"id":10641,"url":"http://patchwork.ozlabs.org/api/1.2/people/10641/?format=json","name":"Kees Cook","email":"keescook@chromium.org"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.2/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/1504222183-61202-20-git-send-email-keescook@chromium.org/mbox/","series":[{"id":923,"url":"http://patchwork.ozlabs.org/api/1.2/series/923/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=923","date":"2017-08-31T23:29:25","name":null,"version":1,"mbox":"http://patchwork.ozlabs.org/series/923/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/808473/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/808473/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"a8/CloNp\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xjzRs4vs4z9s7p\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 09:42:01 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752057AbdHaXlu (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 31 Aug 2017 19:41:50 -0400","from mail-pf0-f180.google.com ([209.85.192.180]:35475 \"EHLO\n\tmail-pf0-f180.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751815AbdHaXjU (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 31 Aug 2017 19:39:20 -0400","by mail-pf0-f180.google.com with SMTP id g13so3168375pfm.2\n\tfor <netdev@vger.kernel.org>; Thu, 31 Aug 2017 16:39:20 -0700 (PDT)","from www.outflux.net\n\t(173-164-112-133-Oregon.hfc.comcastbusiness.net. [173.164.112.133])\n\tby smtp.gmail.com with ESMTPSA id\n\tl67sm861740pfb.178.2017.08.31.16.39.17\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tThu, 31 Aug 2017 16:39:17 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=chromium.org; s=google;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=rWXy7cT3qNqZRt41uNYK+XNqg2GNkNagkyzJlyw1Yhs=;\n\tb=a8/CloNpgIXlx4lb3qiBFHweKhQ4Fn5WYV4iXVHWtmhrzKST9HbUdTkRUczg1BoAx5\n\tzlU5n+iU1gK7M563TmO8pGo9SV7YJ2gquS/jKse3lANlbDvr/3VQmtyZVxWVNbuf7BEr\n\t/iCsOrlTXInPIDf6uZzkLNMYju8V7YN2pAPfE=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=rWXy7cT3qNqZRt41uNYK+XNqg2GNkNagkyzJlyw1Yhs=;\n\tb=BV/lJZRNAoCva4oHnSPJx4HQKB/eZ1VnMJihO5Jj224mwXT9H2ieeJLAb016bthO46\n\tPC2MJ0LH3aMN0nld1uaANste4LYL/BvtoU+knpR489U5KBkP43x9zCChmRIPc5CSouWU\n\tNG5M/6Kb7jfIT9NN7E+kKU95bkEipdJYy9DGP4UOl3rnB96BXT8AOC7hSD/dOU73jQgB\n\tKO76ke6f0N3qESZdLzuhNUeQN74lqliWPE+s7lZThWZ7P2CGyTIVyMCICn1DZLVOJEzf\n\thsBRAL2f1z5PrQX1+TPkVtnCTyOfVK1aGYjd4A3GtBl3gsRvoBlexekJMwBP6fKYbpEG\n\tXCPw==","X-Gm-Message-State":"AHPjjUjmifseNLzXnGl9AC4A8evb0+zupQqVDDplyiQWegV21XBU+2dH\n\t/uab5dXapN+AyvDr","X-Google-Smtp-Source":"ADKCNb56kb90qJQFNGA2QkesglEnzKiSA/G/vyGvhs39syCtQVfBz3Hq+JZdulu8h1OmDw13mT01UQ==","X-Received":"by 10.99.53.72 with SMTP id c69mr172517pga.284.1504222760254;\n\tThu, 31 Aug 2017 16:39:20 -0700 (PDT)","From":"Kees Cook <keescook@chromium.org>","To":"Thomas Gleixner <tglx@linutronix.de>","Cc":"Kees Cook <keescook@chromium.org>, Samuel Ortiz <samuel@sortiz.org>,\n\tTyrel Datwyler <tyreld@linux.vnet.ibm.com>,\n\tBenjamin Herrenschmidt <benh@kernel.crashing.org>,\n\tPaul Mackerras <paulus@samba.org>, Michael Ellerman <mpe@ellerman.id.au>,\n\t\"James E.J. Bottomley\" <jejb@linux.vnet.ibm.com>,\n\t\"Martin K. Petersen\" <martin.petersen@oracle.com>,\n\tnetdev@vger.kernel.org, linux-scsi@vger.kernel.org,\n\tlinuxppc-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":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"This standardizes the callback and data prototypes in several places that\nperform casting, in an effort to remove more open-coded .data and\n.function uses in favor of setup_timer().\n\nCc: Samuel Ortiz <samuel@sortiz.org>\nCc: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>\nCc: Benjamin Herrenschmidt <benh@kernel.crashing.org>\nCc: Paul Mackerras <paulus@samba.org>\nCc: Michael Ellerman <mpe@ellerman.id.au>\nCc: \"James E.J. Bottomley\" <jejb@linux.vnet.ibm.com>\nCc: \"Martin K. Petersen\" <martin.petersen@oracle.com>\nCc: netdev@vger.kernel.org\nCc: linux-scsi@vger.kernel.org\nCc: linuxppc-dev@lists.ozlabs.org\nSigned-off-by: Kees Cook <keescook@chromium.org>\n---\n drivers/net/irda/bfin_sir.c      |  5 +++--\n drivers/scsi/ibmvscsi/ibmvfc.c   | 14 ++++++--------\n drivers/scsi/ibmvscsi/ibmvscsi.c |  8 ++++----\n 3 files changed, 13 insertions(+), 14 deletions(-)","diff":"diff --git a/drivers/net/irda/bfin_sir.c b/drivers/net/irda/bfin_sir.c\nindex 3151b580dbd6..c9413bd580a7 100644\n--- a/drivers/net/irda/bfin_sir.c\n+++ b/drivers/net/irda/bfin_sir.c\n@@ -317,8 +317,9 @@ static void bfin_sir_dma_rx_chars(struct net_device *dev)\n \t\tasync_unwrap_char(dev, &self->stats, &self->rx_buff, port->rx_dma_buf.buf[i]);\n }\n \n-void bfin_sir_rx_dma_timeout(struct net_device *dev)\n+void bfin_sir_rx_dma_timeout(unsigned long data)\n {\n+\tstruct net_device *dev = (struct net_device *)data;\n \tstruct bfin_sir_self *self = netdev_priv(dev);\n \tstruct bfin_sir_port *port = self->sir_port;\n \tint x_pos, pos;\n@@ -406,7 +407,7 @@ static int bfin_sir_startup(struct bfin_sir_port *port, struct net_device *dev)\n \tenable_dma(port->rx_dma_channel);\n \n \tport->rx_dma_timer.data = (unsigned long)(dev);\n-\tport->rx_dma_timer.function = (void *)bfin_sir_rx_dma_timeout;\n+\tport->rx_dma_timer.function = bfin_sir_rx_dma_timeout;\n \n #else\n \ndiff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c\nindex cc4e05be8d4a..1be20688dd1f 100644\n--- a/drivers/scsi/ibmvscsi/ibmvfc.c\n+++ b/drivers/scsi/ibmvscsi/ibmvfc.c\n@@ -1393,8 +1393,9 @@ static int ibmvfc_map_sg_data(struct scsi_cmnd *scmd,\n  *\n  * Called when an internally generated command times out\n  **/\n-static void ibmvfc_timeout(struct ibmvfc_event *evt)\n+static void ibmvfc_timeout(unsigned long data)\n {\n+\tstruct ibmvfc_event *evt = (struct ibmvfc_event *)data;\n \tstruct ibmvfc_host *vhost = evt->vhost;\n \tdev_err(vhost->dev, \"Command timed out (%p). Resetting connection\\n\", evt);\n \tibmvfc_reset_host(vhost);\n@@ -1424,12 +1425,10 @@ static int ibmvfc_send_event(struct ibmvfc_event *evt,\n \t\tBUG();\n \n \tlist_add_tail(&evt->queue, &vhost->sent);\n-\tinit_timer(&evt->timer);\n+\tsetup_timer(&evt->timer, ibmvfc_timeout, (unsigned long)evt);\n \n \tif (timeout) {\n-\t\tevt->timer.data = (unsigned long) evt;\n \t\tevt->timer.expires = jiffies + (timeout * HZ);\n-\t\tevt->timer.function = (void (*)(unsigned long))ibmvfc_timeout;\n \t\tadd_timer(&evt->timer);\n \t}\n \n@@ -3696,8 +3695,9 @@ static void ibmvfc_tgt_adisc_cancel_done(struct ibmvfc_event *evt)\n  * out, reset the CRQ. When the ADISC comes back as cancelled,\n  * log back into the target.\n  **/\n-static void ibmvfc_adisc_timeout(struct ibmvfc_target *tgt)\n+static void ibmvfc_adisc_timeout(unsigned long data)\n {\n+\tstruct ibmvfc_target *tgt = (struct ibmvfc_target *)data;\n \tstruct ibmvfc_host *vhost = tgt->vhost;\n \tstruct ibmvfc_event *evt;\n \tstruct ibmvfc_tmf *tmf;\n@@ -3782,9 +3782,7 @@ static void ibmvfc_tgt_adisc(struct ibmvfc_target *tgt)\n \tif (timer_pending(&tgt->timer))\n \t\tmod_timer(&tgt->timer, jiffies + (IBMVFC_ADISC_TIMEOUT * HZ));\n \telse {\n-\t\ttgt->timer.data = (unsigned long) tgt;\n \t\ttgt->timer.expires = jiffies + (IBMVFC_ADISC_TIMEOUT * HZ);\n-\t\ttgt->timer.function = (void (*)(unsigned long))ibmvfc_adisc_timeout;\n \t\tadd_timer(&tgt->timer);\n \t}\n \n@@ -3916,7 +3914,7 @@ static int ibmvfc_alloc_target(struct ibmvfc_host *vhost, u64 scsi_id)\n \ttgt->vhost = vhost;\n \ttgt->need_login = 1;\n \ttgt->cancel_key = vhost->task_set++;\n-\tinit_timer(&tgt->timer);\n+\tsetup_timer(&tgt->timer, ibmvfc_adisc_timeout, (unsigned long)tgt);\n \tkref_init(&tgt->kref);\n \tibmvfc_init_tgt(tgt, ibmvfc_tgt_implicit_logout);\n \tspin_lock_irqsave(vhost->host->host_lock, flags);\ndiff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c\nindex da22b3665cb0..44ae85903a00 100644\n--- a/drivers/scsi/ibmvscsi/ibmvscsi.c\n+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c\n@@ -837,8 +837,9 @@ static void ibmvscsi_reset_host(struct ibmvscsi_host_data *hostdata)\n  *\n  * Called when an internally generated command times out\n */\n-static void ibmvscsi_timeout(struct srp_event_struct *evt_struct)\n+static void ibmvscsi_timeout(unsigned long data)\n {\n+\tstruct srp_event_struct *evt_struct = (struct srp_event_struct *)data;\n \tstruct ibmvscsi_host_data *hostdata = evt_struct->hostdata;\n \n \tdev_err(hostdata->dev, \"Command timed out (%x). Resetting connection\\n\",\n@@ -927,11 +928,10 @@ static int ibmvscsi_send_srp_event(struct srp_event_struct *evt_struct,\n \t */\n \tlist_add_tail(&evt_struct->list, &hostdata->sent);\n \n-\tinit_timer(&evt_struct->timer);\n+\tsetup_timer(&evt_struct->timer, ibmvscsi_timeout,\n+\t\t    (unsigned long)evt_struct);\n \tif (timeout) {\n-\t\tevt_struct->timer.data = (unsigned long) evt_struct;\n \t\tevt_struct->timer.expires = jiffies + (timeout * HZ);\n-\t\tevt_struct->timer.function = (void (*)(unsigned long))ibmvscsi_timeout;\n \t\tadd_timer(&evt_struct->timer);\n \t}\n \n","prefixes":["19/31"]}