get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 49495,
    "url": "http://patchwork.dpdk.org/api/patches/49495/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20190108145926.37367-1-david.hunt@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20190108145926.37367-1-david.hunt@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20190108145926.37367-1-david.hunt@intel.com",
    "date": "2019-01-08T14:59:26",
    "name": "lib/power: fix error handling on setting governor",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "d071830c9ad344db818ce674b762fedacb303211",
    "submitter": {
        "id": 342,
        "url": "http://patchwork.dpdk.org/api/people/342/?format=api",
        "name": "Hunt, David",
        "email": "david.hunt@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20190108145926.37367-1-david.hunt@intel.com/mbox/",
    "series": [
        {
            "id": 3046,
            "url": "http://patchwork.dpdk.org/api/series/3046/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=3046",
            "date": "2019-01-08T14:59:26",
            "name": "lib/power: fix error handling on setting governor",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/3046/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/49495/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/49495/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 02F2A1B39D;\n\tTue,  8 Jan 2019 15:59:38 +0100 (CET)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id BA0D61B395\n\tfor <dev@dpdk.org>; Tue,  8 Jan 2019 15:59:36 +0100 (CET)",
            "from orsmga003.jf.intel.com ([10.7.209.27])\n\tby orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t08 Jan 2019 06:59:35 -0800",
            "from silpixa00399952.ir.intel.com (HELO\n\tsilpixa00399952.ger.corp.intel.com) ([10.237.223.64])\n\tby orsmga003.jf.intel.com with ESMTP; 08 Jan 2019 06:59:34 -0800"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.56,454,1539673200\"; d=\"scan'208\";a=\"116449518\"",
        "From": "David Hunt <david.hunt@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "david.hunt@intel.com,\n\tliang.j.ma@intel.com",
        "Date": "Tue,  8 Jan 2019 14:59:26 +0000",
        "Message-Id": "<20190108145926.37367-1-david.hunt@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "Subject": "[dpdk-dev] [PATCH] lib/power: fix error handling on setting governor",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "In the power_set_governor_*() functions, we using fputs() on /sys\nfilesystem. However, we also need to call fflush() to ensure that\nthe write completes successfully. Otherwise the attempt to set the\npower governor fails and the function returns as if it has\nsucceeded. This patch adds an fflush to ensure that the\nwrite succeeds, otherwise returns an error.\n\nFixes: e6c6dc0f96c8 (\"power: add p-state driver compatibility\")\n\nSigned-off-by: David Hunt <david.hunt@intel.com>\n---\n lib/librte_power/power_acpi_cpufreq.c   | 4 ++++\n lib/librte_power/power_pstate_cpufreq.c | 4 ++++\n 2 files changed, 8 insertions(+)",
    "diff": "diff --git a/lib/librte_power/power_acpi_cpufreq.c b/lib/librte_power/power_acpi_cpufreq.c\nindex 98dcde31d..45412f0b9 100644\n--- a/lib/librte_power/power_acpi_cpufreq.c\n+++ b/lib/librte_power/power_acpi_cpufreq.c\n@@ -166,6 +166,10 @@ power_set_governor_userspace(struct rte_power_info *pi)\n \tval = fputs(POWER_GOVERNOR_USERSPACE, f);\n \tFOPS_OR_ERR_GOTO(val, out);\n \n+\t/* We need to flush to see if the fputs succeeds */\n+\tval = fflush(f);\n+\tFOPS_OR_ERR_GOTO(val, out);\n+\n \tret = 0;\n \tRTE_LOG(INFO, POWER, \"Power management governor of lcore %u has been \"\n \t\t\t\"set to user space successfully\\n\", pi->lcore_id);\ndiff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c\nindex 9ec5da511..c4d972fc0 100644\n--- a/lib/librte_power/power_pstate_cpufreq.c\n+++ b/lib/librte_power/power_pstate_cpufreq.c\n@@ -308,6 +308,10 @@ power_set_governor_performance(struct pstate_power_info *pi)\n \tval = fputs(POWER_GOVERNOR_PERF, f);\n \tFOPS_OR_ERR_GOTO(val, out);\n \n+\t/* We need to flush to see if the fputs succeeds */\n+\tval = fflush(f);\n+\tFOPS_OR_ERR_GOTO(val, out);\n+\n \tret = 0;\n \tRTE_LOG(INFO, POWER, \"Power management governor of lcore %u has been \"\n \t\t\t\"set to performance successfully\\n\", pi->lcore_id);\n",
    "prefixes": []
}