get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/808471/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 808471,
    "url": "http://patchwork.ozlabs.org/api/patches/808471/?format=api",
    "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/projects/2/?format=api",
        "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/people/10641/?format=api",
        "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/series/925/?format=api",
            "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"
    ]
}