Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/808468/?format=api
{ "id": 808468, "url": "http://patchwork.ozlabs.org/api/patches/808468/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1504222183-61202-32-git-send-email-keescook@chromium.org/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api", "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-32-git-send-email-keescook@chromium.org>", "list_archive_url": null, "date": "2017-08-31T23:29:43", "name": "[31/31] timer: Switch to testing for .function instead of .data", "commit_ref": null, "pull_url": null, "state": "not-applicable", "archived": true, "hash": "af5b4024561eb8f27392347691c9cd4c349bc907", "submitter": { "id": 10641, "url": "http://patchwork.ozlabs.org/api/people/10641/?format=api", "name": "Kees Cook", "email": "keescook@chromium.org" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1504222183-61202-32-git-send-email-keescook@chromium.org/mbox/", "series": [ { "id": 923, "url": "http://patchwork.ozlabs.org/api/series/923/?format=api", "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/808468/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/808468/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=\"G8qoMEHo\"; dkim-atps=neutral" ], "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xjzPJ3Ww8z9s8J\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 1 Sep 2017 09:39:48 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752040AbdHaXjr (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 31 Aug 2017 19:39:47 -0400", "from mail-pf0-f170.google.com ([209.85.192.170]:33127 \"EHLO\n\tmail-pf0-f170.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751904AbdHaXj1 (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 31 Aug 2017 19:39:27 -0400", "by mail-pf0-f170.google.com with SMTP id n73so3230307pfj.0\n\tfor <netdev@vger.kernel.org>; Thu, 31 Aug 2017 16:39:26 -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\t10sm938904pfl.59.2017.08.31.16.39.20\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tThu, 31 Aug 2017 16:39:24 -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=YYR7Wl3TrS38XyFtQ9gBif8HUmvSB3ieDqRNqWu220w=;\n\tb=G8qoMEHoqYtADX/WMjaVzojpp6glIjzicIAxV69iy/fNuS/CEzo4/D5oGpEMrALfXh\n\tzlXK9IIQGty/qyPINx84DNDXGTs2tPUysUHtFqFxyu8DcJLi2P9gXiBvRNyuhtflRy82\n\t0YUOM9ACKi45uI9Tv8j3bySLPsnz/ApE8ufdo=", "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=YYR7Wl3TrS38XyFtQ9gBif8HUmvSB3ieDqRNqWu220w=;\n\tb=fbGi8j1FXoTH1PCXVhRbE721naV0hQGqpjFJwCQ5YesGAmgzGiWTcfiMCBHUidBTjY\n\tSURhDp4KjjUl2S613vondLtAQGBXT7F364h9h25iE8upqplr6hC7JsbCw5AGqUeYGCwY\n\tg59CrBi744InGIfPFZybIZCa0fiaJ6oQDfGE3h9UYrRWHuTIQrjBdKTWwoQAaSmC+8DG\n\tmGaryuK+Vk/zC/dnEA1vOUZpGEY1JxOqfxmL6smxpe82ZmXZyS2J0YZcvsooabW0MKLJ\n\tt6s36F5M/iEz/XGJYeKnSpVJ9ygiCj5V0tVcqy25LAyM0pKkc3MBJ/dqK7tmLTQSPD+P\n\tJz3Q==", "X-Gm-Message-State": "AHPjjUifMgqrfPcv7iOcJ6ZAdQ3V6k7oDqBMCje7owepGUTKo9+Jd48A\n\thVtkp/QDPSDRPV9c", "X-Google-Smtp-Source": "ADKCNb73zhmQv5uXzaCUvbaSffkpDyW8GnZiZGeJMsMueD933HHGewIU4ozEcTAucxtdPfEZkwUscg==", "X-Received": "by 10.98.220.137 with SMTP id c9mr165082pfl.190.1504222766207;\n\tThu, 31 Aug 2017 16:39:26 -0700 (PDT)", "From": "Kees Cook <keescook@chromium.org>", "To": "Thomas Gleixner <tglx@linutronix.de>", "Cc": "Kees Cook <keescook@chromium.org>,\n\t\"Rafael J. Wysocki\" <rjw@rjwysocki.net>,\n\tPavel Machek <pavel@ucw.cz>, Len Brown <len.brown@intel.com>,\n\tGreg Kroah-Hartman <gregkh@linuxfoundation.org>,\n\tMike Marciniszyn <mike.marciniszyn@intel.com>,\n\tDennis Dalessandro <dennis.dalessandro@intel.com>,\n\tDoug Ledford <dledford@redhat.com>, Sean Hefty <sean.hefty@intel.com>,\n\tHal Rosenstock <hal.rosenstock@gmail.com>,\n\tDmitry Torokhov <dmitry.torokhov@gmail.com>,\n\tJeff Kirsher <jeffrey.t.kirsher@intel.com>,\n\tlinux-pm@vger.kernel.org, linux-rdma@vger.kernel.org,\n\tlinux-input@vger.kernel.org, intel-wired-lan@lists.osuosl.org,\n\tnetdev@vger.kernel.org, linux-kernel@vger.kernel.org", "Subject": "[PATCH 31/31] timer: Switch to testing for .function instead of\n\t.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": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "In several places, .data is checked for initialization to gate early\ncalls to del_timer_sync(). Checking for .function is equally valid, so\nswitch to this in all callers.\n\nCc: \"Rafael J. Wysocki\" <rjw@rjwysocki.net>\nCc: Pavel Machek <pavel@ucw.cz>\nCc: Len Brown <len.brown@intel.com>\nCc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nCc: Mike Marciniszyn <mike.marciniszyn@intel.com>\nCc: Dennis Dalessandro <dennis.dalessandro@intel.com>\nCc: Doug Ledford <dledford@redhat.com>\nCc: Sean Hefty <sean.hefty@intel.com>\nCc: Hal Rosenstock <hal.rosenstock@gmail.com>\nCc: Dmitry Torokhov <dmitry.torokhov@gmail.com>\nCc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>\nCc: linux-pm@vger.kernel.org\nCc: linux-rdma@vger.kernel.org\nCc: linux-input@vger.kernel.org\nCc: intel-wired-lan@lists.osuosl.org\nCc: netdev@vger.kernel.org\nSigned-off-by: Kees Cook <keescook@chromium.org>\n---\n drivers/base/power/wakeup.c | 3 +--\n drivers/infiniband/hw/hfi1/chip.c | 6 ++----\n drivers/infiniband/hw/hfi1/init.c | 2 +-\n drivers/infiniband/hw/qib/qib_iba7220.c | 2 +-\n drivers/infiniband/hw/qib/qib_iba7322.c | 2 +-\n drivers/infiniband/hw/qib/qib_init.c | 14 +++++---------\n drivers/infiniband/hw/qib/qib_mad.c | 2 +-\n drivers/input/input.c | 5 ++---\n drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +-\n 9 files changed, 15 insertions(+), 23 deletions(-)", "diff": "diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c\nindex 144e6d8fafc8..79a3c1b204af 100644\n--- a/drivers/base/power/wakeup.c\n+++ b/drivers/base/power/wakeup.c\n@@ -479,8 +479,7 @@ static bool wakeup_source_not_registered(struct wakeup_source *ws)\n \t * Use timer struct to check if the given source is initialized\n \t * by wakeup_source_add.\n \t */\n-\treturn ws->timer.function != pm_wakeup_timer_fn ||\n-\t\t ws->timer.data != (unsigned long)ws;\n+\treturn ws->timer.function != pm_wakeup_timer_fn;\n }\n \n /*\ndiff --git a/drivers/infiniband/hw/hfi1/chip.c b/drivers/infiniband/hw/hfi1/chip.c\nindex 94b54850ec75..53a6596cd7d6 100644\n--- a/drivers/infiniband/hw/hfi1/chip.c\n+++ b/drivers/infiniband/hw/hfi1/chip.c\n@@ -5513,9 +5513,8 @@ static int init_rcverr(struct hfi1_devdata *dd)\n \n static void free_rcverr(struct hfi1_devdata *dd)\n {\n-\tif (dd->rcverr_timer.data)\n+\tif (dd->rcverr_timer.function)\n \t\tdel_timer_sync(&dd->rcverr_timer);\n-\tdd->rcverr_timer.data = 0;\n }\n \n static void handle_rxe_err(struct hfi1_devdata *dd, u32 unused, u64 reg)\n@@ -11992,9 +11991,8 @@ static void free_cntrs(struct hfi1_devdata *dd)\n \tstruct hfi1_pportdata *ppd;\n \tint i;\n \n-\tif (dd->synth_stats_timer.data)\n+\tif (dd->synth_stats_timer.function)\n \t\tdel_timer_sync(&dd->synth_stats_timer);\n-\tdd->synth_stats_timer.data = 0;\n \tppd = (struct hfi1_pportdata *)(dd + 1);\n \tfor (i = 0; i < dd->num_pports; i++, ppd++) {\n \t\tkfree(ppd->cntrs);\ndiff --git a/drivers/infiniband/hw/hfi1/init.c b/drivers/infiniband/hw/hfi1/init.c\nindex 4a11d4da4c92..bc2af709c111 100644\n--- a/drivers/infiniband/hw/hfi1/init.c\n+++ b/drivers/infiniband/hw/hfi1/init.c\n@@ -839,7 +839,7 @@ static void stop_timers(struct hfi1_devdata *dd)\n \n \tfor (pidx = 0; pidx < dd->num_pports; ++pidx) {\n \t\tppd = dd->pport + pidx;\n-\t\tif (ppd->led_override_timer.data) {\n+\t\tif (ppd->led_override_timer.function) {\n \t\t\tdel_timer_sync(&ppd->led_override_timer);\n \t\t\tatomic_set(&ppd->led_override_timer_active, 0);\n \t\t}\ndiff --git a/drivers/infiniband/hw/qib/qib_iba7220.c b/drivers/infiniband/hw/qib/qib_iba7220.c\nindex b1d512c7ff4b..22fd65fe7193 100644\n--- a/drivers/infiniband/hw/qib/qib_iba7220.c\n+++ b/drivers/infiniband/hw/qib/qib_iba7220.c\n@@ -1662,7 +1662,7 @@ static void qib_7220_quiet_serdes(struct qib_pportdata *ppd)\n \t\t dd->control | QLOGIC_IB_C_FREEZEMODE);\n \n \tppd->cpspec->chase_end = 0;\n-\tif (ppd->cpspec->chase_timer.data) /* if initted */\n+\tif (ppd->cpspec->chase_timer.function) /* if initted */\n \t\tdel_timer_sync(&ppd->cpspec->chase_timer);\n \n \tif (ppd->cpspec->ibsymdelta || ppd->cpspec->iblnkerrdelta ||\ndiff --git a/drivers/infiniband/hw/qib/qib_iba7322.c b/drivers/infiniband/hw/qib/qib_iba7322.c\nindex bb2439fff8fa..471aaf6bcbf2 100644\n--- a/drivers/infiniband/hw/qib/qib_iba7322.c\n+++ b/drivers/infiniband/hw/qib/qib_iba7322.c\n@@ -2531,7 +2531,7 @@ static void qib_7322_mini_quiet_serdes(struct qib_pportdata *ppd)\n \t\tcancel_delayed_work_sync(&ppd->cpspec->ipg_work);\n \n \tppd->cpspec->chase_end = 0;\n-\tif (ppd->cpspec->chase_timer.data) /* if initted */\n+\tif (ppd->cpspec->chase_timer.function) /* if initted */\n \t\tdel_timer_sync(&ppd->cpspec->chase_timer);\n \n \t/*\ndiff --git a/drivers/infiniband/hw/qib/qib_init.c b/drivers/infiniband/hw/qib/qib_init.c\nindex 6c16ba1107ba..66fb0318660b 100644\n--- a/drivers/infiniband/hw/qib/qib_init.c\n+++ b/drivers/infiniband/hw/qib/qib_init.c\n@@ -815,23 +815,19 @@ static void qib_stop_timers(struct qib_devdata *dd)\n \tstruct qib_pportdata *ppd;\n \tint pidx;\n \n-\tif (dd->stats_timer.data) {\n+\tif (dd->stats_timer.function)\n \t\tdel_timer_sync(&dd->stats_timer);\n-\t\tdd->stats_timer.data = 0;\n-\t}\n-\tif (dd->intrchk_timer.data) {\n+\tif (dd->intrchk_timer.function)\n \t\tdel_timer_sync(&dd->intrchk_timer);\n-\t\tdd->intrchk_timer.data = 0;\n-\t}\n \tfor (pidx = 0; pidx < dd->num_pports; ++pidx) {\n \t\tppd = dd->pport + pidx;\n-\t\tif (ppd->hol_timer.data)\n+\t\tif (ppd->hol_timer.function)\n \t\t\tdel_timer_sync(&ppd->hol_timer);\n-\t\tif (ppd->led_override_timer.data) {\n+\t\tif (ppd->led_override_timer.function) {\n \t\t\tdel_timer_sync(&ppd->led_override_timer);\n \t\t\tatomic_set(&ppd->led_override_timer_active, 0);\n \t\t}\n-\t\tif (ppd->symerr_clear_timer.data)\n+\t\tif (ppd->symerr_clear_timer.function)\n \t\t\tdel_timer_sync(&ppd->symerr_clear_timer);\n \t}\n }\ndiff --git a/drivers/infiniband/hw/qib/qib_mad.c b/drivers/infiniband/hw/qib/qib_mad.c\nindex f5a2aed31a89..37483f32935c 100644\n--- a/drivers/infiniband/hw/qib/qib_mad.c\n+++ b/drivers/infiniband/hw/qib/qib_mad.c\n@@ -2496,7 +2496,7 @@ void qib_notify_free_mad_agent(struct rvt_dev_info *rdi, int port_idx)\n \tstruct qib_devdata *dd = container_of(ibdev,\n \t\t\t\t\t struct qib_devdata, verbs_dev);\n \n-\tif (dd->pport[port_idx].cong_stats.timer.data)\n+\tif (dd->pport[port_idx].cong_stats.timer.function)\n \t\tdel_timer_sync(&dd->pport[port_idx].cong_stats.timer);\n \n \tif (dd->pport[port_idx].ibport_data.smi_ah)\ndiff --git a/drivers/input/input.c b/drivers/input/input.c\nindex 7e6842bd525c..a91fbbfc1b32 100644\n--- a/drivers/input/input.c\n+++ b/drivers/input/input.c\n@@ -76,7 +76,7 @@ static void input_start_autorepeat(struct input_dev *dev, int code)\n {\n \tif (test_bit(EV_REP, dev->evbit) &&\n \t dev->rep[REP_PERIOD] && dev->rep[REP_DELAY] &&\n-\t dev->timer.data) {\n+\t dev->timer.function) {\n \t\tdev->repeat_key = code;\n \t\tmod_timer(&dev->timer,\n \t\t\t jiffies + msecs_to_jiffies(dev->rep[REP_DELAY]));\n@@ -1790,7 +1790,7 @@ struct input_dev *input_allocate_device(void)\n \t\tdevice_initialize(&dev->dev);\n \t\tmutex_init(&dev->mutex);\n \t\tspin_lock_init(&dev->event_lock);\n-\t\tinit_timer(&dev->timer);\n+\t\tsetup_timer(&dev->timer, NULL, (unsigned long)dev);\n \t\tINIT_LIST_HEAD(&dev->h_list);\n \t\tINIT_LIST_HEAD(&dev->node);\n \n@@ -2053,7 +2053,6 @@ static void devm_input_device_unregister(struct device *dev, void *res)\n */\n void input_enable_softrepeat(struct input_dev *dev, int delay, int period)\n {\n-\tdev->timer.data = (unsigned long) dev;\n \tdev->timer.function = input_repeat_key;\n \tdev->rep[REP_DELAY] = delay;\n \tdev->rep[REP_PERIOD] = period;\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex 2db93d3f6d23..b9a4c1a6e4ba 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -11797,7 +11797,7 @@ static void i40e_remove(struct pci_dev *pdev)\n \t/* no more scheduling of any task */\n \tset_bit(__I40E_SUSPENDED, pf->state);\n \tset_bit(__I40E_DOWN, pf->state);\n-\tif (pf->service_timer.data)\n+\tif (pf->service_timer.function)\n \t\tdel_timer_sync(&pf->service_timer);\n \tif (pf->service_task.func)\n \t\tcancel_work_sync(&pf->service_task);\n", "prefixes": [ "31/31" ] }