{"id":808471,"url":"http://patchwork.ozlabs.org/api/1.2/patches/808471/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/1504222183-61202-20-git-send-email-keescook@chromium.org/","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/1.2/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/","list_archive_url":"https://lore.kernel.org/linuxppc-dev/","list_archive_url_format":"https://lore.kernel.org/linuxppc-dev/{}/","commit_url_format":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"},"msgid":"<1504222183-61202-20-git-send-email-keescook@chromium.org>","list_archive_url":"https://lore.kernel.org/linuxppc-dev/1504222183-61202-20-git-send-email-keescook@chromium.org/","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":false,"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":null,"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/1504222183-61202-20-git-send-email-keescook@chromium.org/mbox/","series":[{"id":925,"url":"http://patchwork.ozlabs.org/api/1.2/series/925/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=925","date":"2017-08-31T23:29:31","name":null,"version":1,"mbox":"http://patchwork.ozlabs.org/series/925/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/808471/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/808471/checks/","tags":{},"related":[],"headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xjzR932SPz9s7p\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 09:41:25 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xjzR91mt5zDqZ1\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 09:41:25 +1000 (AEST)","from mail-pf0-x22b.google.com (mail-pf0-x22b.google.com\n\t[IPv6:2607:f8b0:400e:c00::22b])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xjzNp3bTKzDqYd\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tFri,  1 Sep 2017 09:39:22 +1000 (AEST)","by mail-pf0-x22b.google.com with SMTP id r187so3111013pfr.3\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tThu, 31 Aug 2017 16:39:22 -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)"],"Authentication-Results":["ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"a8/CloNp\"; dkim-atps=neutral","lists.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"a8/CloNp\"; dkim-atps=neutral","lists.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"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=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=auBNpElNxNDfIFetJs5OqM0cOQRNBs24dXRUQpw8apNh9ZcnRJfQ8Pt6wUZal0gW48\n\tlxmcc3PN2e6vyHb3SnYUZ88Ilh5HDdJ8KH395JtJTY02bOc6ivL7fHdvCSV2L2Y2EH5Y\n\tjiIBfQYli/5xIwxYXPqa+xp06uiKxkcFBSNun7dxdXcEMJ7CyA8Gsjzi8CiQG+Q1pCFl\n\tQ5OvVJq1/MFpv2BXvQPEOd9HUkCTouQSIlwOL36v3j+AY9/G2nTttcYKqgAISos05hA4\n\tBs9A27cOm3YcHZ0X5ii0akxpqi03IIPenDXyP07tFi2HBPTa3+ahZ84QAkekYnP9fGTd\n\tBAwQ==","X-Gm-Message-State":"AHPjjUgtLCsjuawD9MAtBFH0QXCpnZ1bf4uubjZFC35ZhAYagedIz7w0\n\t0bqHwLTyhWBVDNrVuq+qpg==","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>","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>","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"Samuel Ortiz <samuel@sortiz.org>,\n\t\"James E.J. Bottomley\" <jejb@linux.vnet.ibm.com>,\n\tKees Cook <keescook@chromium.org>,\n\t\"Martin K. Petersen\" <martin.petersen@oracle.com>,\n\tlinux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,\n\tnetdev@vger.kernel.org, Paul Mackerras <paulus@samba.org>,\n\tTyrel Datwyler <tyreld@linux.vnet.ibm.com>, linuxppc-dev@lists.ozlabs.org","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.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"]}