get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 638472,
    "url": "http://patchwork.ozlabs.org/api/patches/638472/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/1466485631-3532-20-git-send-email-ynorov@caviumnetworks.com/",
    "project": {
        "id": 41,
        "url": "http://patchwork.ozlabs.org/api/projects/41/?format=api",
        "name": "GNU C Library",
        "link_name": "glibc",
        "list_id": "libc-alpha.sourceware.org",
        "list_email": "libc-alpha@sourceware.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<1466485631-3532-20-git-send-email-ynorov@caviumnetworks.com>",
    "list_archive_url": null,
    "date": "2016-06-21T05:07:02",
    "name": "[18/27,AARCH64] Add kernel_sigaction.h for AARCH64 ILP32",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "b283af38ea6ad51badf0b171a267ce03aca5acfb",
    "submitter": {
        "id": 68471,
        "url": "http://patchwork.ozlabs.org/api/people/68471/?format=api",
        "name": "Yury Norov",
        "email": "ynorov@caviumnetworks.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/glibc/patch/1466485631-3532-20-git-send-email-ynorov@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/638472/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/638472/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<libc-alpha-return-70831-incoming=patchwork.ozlabs.org@sourceware.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "mailing list libc-alpha@sourceware.org"
        ],
        "Received": [
            "from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3rYbXB2PCLz9s9Z\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 21 Jun 2016 15:15:22 +1000 (AEST)",
            "(qmail 26840 invoked by alias); 21 Jun 2016 05:13:35 -0000",
            "(qmail 20208 invoked by uid 89); 21 Jun 2016 05:13:31 -0000"
        ],
        "Authentication-Results": [
            "ozlabs.org; dkim=pass (1024-bit key;\n\tsecure) header.d=sourceware.org header.i=@sourceware.org\n\theader.b=M7ZE+uA7; dkim-atps=neutral",
            "sourceware.org; auth=none",
            "spf=none (sender IP is )\n\tsmtp.mailfrom=Yuri.Norov@caviumnetworks.com; "
        ],
        "DomainKey-Signature": "a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:mime-version:content-type; q=dns; s=default; b=jyNeJ\n\teUPbLJUfbvJESucSJJe2mHDmi040GteaRH8lBFb5gfD7p56+gjK4+GoDfjoKmiiz\n\ts2P3Fvg912Hj23AR7RY0WcNp08akxF0YnNbYS1Ow6o+WwMjFO1JpwoAe4ah2Swo2\n\t6bujFQViNexfFruxPvdKAfZHSgJsTUbVUJEMs4=",
        "DKIM-Signature": "v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:mime-version:content-type; s=default; bh=lpF/ictnLpA\n\tezWbe+theyHwA7nA=; b=M7ZE+uA7FokB9La6GGlLpNRYz7GK5wZSiO+gMdl8Xid\n\tpKFEYDVoBw1dnWyVEy1ILpVylT3CZg7W/koxJU9LN2dC38Uzux8wUKdBFaPsW9aw\n\t72J4DPfI7puOPjzmiPEEVbfrXNrMzm2cGQEZUAcsp+H7BiiIiwDOCXcFwsD2zhjU\n\t=",
        "Mailing-List": "contact libc-alpha-help@sourceware.org; run by ezmlm",
        "Precedence": "bulk",
        "List-Id": "<libc-alpha.sourceware.org>",
        "List-Unsubscribe": "<mailto:libc-alpha-unsubscribe-incoming=patchwork.ozlabs.org@sourceware.org>",
        "List-Subscribe": "<mailto:libc-alpha-subscribe@sourceware.org>",
        "List-Archive": "<http://sourceware.org/ml/libc-alpha/>",
        "List-Post": "<mailto:libc-alpha@sourceware.org>",
        "List-Help": "<mailto:libc-alpha-help@sourceware.org>,\n\t<http://sourceware.org/ml/#faqs>",
        "Sender": "libc-alpha-owner@sourceware.org",
        "X-Virus-Found": "No",
        "X-Spam-SWARE-Status": "No, score=-1.5 required=5.0 tests=AWL, BAYES_00,\n\tRCVD_IN_DNSWL_NONE,\n\tSPF_HELO_PASS autolearn=ham version=3.3.2 spammy=5711, 5511,\n\tact",
        "X-HELO": "na01-by2-obe.outbound.protection.outlook.com",
        "From": "Yury Norov <ynorov@caviumnetworks.com>",
        "To": "<libc-alpha@sourceware.org>, <linux-kernel@vger.kernel.org>",
        "CC": "<arnd@arndb.de>, <catalin.marinas@arm.com>, <marcus.shawcroft@arm.com>, \n\t<philb@gnu.org>, <davem@davemloft.net>, <szabolcs.nagy@arm.com>,\n\t<maxim.kuvyrkov@linaro.org>, <joseph@codesourcery.com>,\n\t<pinskia@gmail.com>, Andrew Pinski <apinski@cavium.com>,\n\tYury Norov <ynorov@caviumnetworks.com>",
        "Subject": "[PATCH 18/27] [AARCH64] Add kernel_sigaction.h for AARCH64 ILP32",
        "Date": "Tue, 21 Jun 2016 08:07:02 +0300",
        "Message-ID": "<1466485631-3532-20-git-send-email-ynorov@caviumnetworks.com>",
        "In-Reply-To": "<1466485631-3532-1-git-send-email-ynorov@caviumnetworks.com>",
        "References": "<1466485631-3532-1-git-send-email-ynorov@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "HE1PR03CA0035.eurprd03.prod.outlook.com (10.163.170.173)\n\tTo SN1PR07MB2254.namprd07.prod.outlook.com (10.164.47.148)",
        "X-MS-Office365-Filtering-Correlation-Id": "b539c472-7444-48ba-8042-08d399927553",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; SN1PR07MB2254;\n\t2:Sz3q+/WutABrF8WjOLinIeDUi6Rc21Ju6QD6UhkcNxHKN8SlbrR8I1GNfr2IBYgGmlDsnaKAkaPaXFXmdWq0uERBIV+1eJn6ldErcZPCnLZ5uro+P3BrC6xRzZ4htitZIHpJR31uYixDOJZTXUOG0GTVcZ2l+1Tf/abAYW+gZgSq7ZhTJbq3Z7qSFX9Zq66o;\n\t3:+GimF54UZEEStcypiPYQ/0N36JiOUSw/lN2Z2zov/xEJbrUiOdSVzE7m6GJwKN7gchxqa3y2fOWLNSjzcaSM7JGO0fGSmn5LqPmDRA6Vw83o5HsL5b2MSMx64FbXNv2D;\n\t25:EqAfNNS933GpN0+2/T3WxX+byt6H9O+bup/k2gNZ0wuubJMmFjnH22/SHwVbrPapJe3Tm84a8Qsy0xq6f9xdJjguCUyzUEC8c6emsvSi4+/MEuhUvnms8XDb5f75/09+Niz3G7Gu8dd2ZMpgLjUVh53YPQm/h9i2rOu/9k+Qd0FnG2z+5qP4vcYYmbpcY1p+ktuBJ8dFMYlYQT/EZ0bMAK8JBsBfh+ELewSMg1BgbOP0vfVUMRd44nUrWATXESJQ9JUZakVUa+36lXv5jm0qxVqDZdbnW4ZEP0J8ugy4sMJ0GkaYTgCS7oMYcc6HCTZYuWmSCLCBvZHUDB26nxO9r0HbhXbQ2LCA3OX4UFfdVuMH05dJqeypwJHR6G5EOW78ENPvRNXemiLKU3bW03/Hvg4lBq1PD5FWc23AL7TtHU4=",
            "1; SN1PR07MB2254;\n\t20:FyYxI2LKy+i86+W3RR/zvoGUcYh2UsrwZc9yGunqCooJejT7Y/WxOMtoR6Pv5HFdARQe3tZ6cWS25/UCukTEeH5ZikG2k10wOCvKvfXc8imN4uaOX2aw8/TLxEaIHl2JoTo3Opz/hlHPAT/pVItv3gaW7KpTlM9yaRpfvob8xxUcjdZnN4UyNRXSIYzyl9DS72RkGYCDeeRCKA2ZKqAR/5EWImqfwbVCfbFmmnUP9I5HRmvlXv0K3bAMKE2pvazaMvpjKZ27ahyZFe8qxS24xw7PfC02DvLHFF3aMxR1l9FRaVOY+r73/0G8kF2VFGPUtVE8GEjk0tZdCINl+AUh8ws0Yd7dtdkzLxkpcIKYKHSKvK1pYlX+8FEfJYfULD7foK2bPPKqSJiJzVhDlc2bQdBlG1C4mljOJRB8yIJJ2YAbE2htCgHChto4dvDoWMthxU3Pw5zkTxMsgJcSH3dEvbcpbDQaNkbmsfXtyMhut8iE6qRPDt1pg6fagZxfcd7eXGek4s7NTyfOd4Hmbr8lCl94DpDgcaaQeC/i5GzOJMbIHoobIRDMZF+P/FSzgNc9sG411JA7lB1xWxvmGZ2/bGYkSRbhAmS+PNFfD28HVCo=",
            "1; SN1PR07MB2254;\n\t4:ynrxvVdr3BH6/GwLrQ+DNyzbglpdGAyZ4dKK3NtKoWV79Mn+lpgu3ohExEldLWFjqJP3M7zjVU9F3j7Jzke6T2PARULtyTIRcVMxAvSLWFBDYHVYnRrVIqecSvtoTwEE+vY6qOyyBsJxxcTG+eHn99TbKNW1sqlr0DPWbc18SsVfzx9LbZ49lORuhtY/FaazlH5jDB9HFZylNf7ebyJmmpNBSEnZtE3T0ewML7hgPoUok7D9Ks77xmDJEOr5xP4Rj0A+HFRsHygX5RIYGAVurgNjC77jBIBzAUlnlnbf7/LppcoCKyakpPDFPildJj1nE4SgsAoKWxhJBxcwOKZN8t2EajsPd2tln1VezA5RsrLvEF0jx2M5roeQlCHBU98T",
            "=?us-ascii?Q?1; SN1PR07MB2254;\n\t23:sRKMO9MtBZY72wXpNqbCv28kKvG17xFWdilL2sjwa?=\n\t=?us-ascii?Q?8XjJ/TRVsORegajdJI0DucIKHnXjB4Nx+Ubzm9D90i1u3+STH/CZSc26x3e7?=\n\t=?us-ascii?Q?lrMl79sAc/wwOfSyRlyfjjINHyIdcZPAoDXRmtJMXJDMz4SWWyvX292BocjA?=\n\t=?us-ascii?Q?ripRwmTkLYV2DO0dQaNTVcLhqhz07OcFTntvqafvlmSFF0NK5UnGVDdWH5Wv?=\n\t=?us-ascii?Q?d5TBqO3TVczu6Fei6cJlIHzX7XMhGafPek+9hW8Z/cFVQ3MfTJHhe6bh8lfW?=\n\t=?us-ascii?Q?gPOq/I0YtfC3qNqW/WLbX4H9z6VZ1+DSXCodu8DYzlIdMCTqpaGuuwtC4Y2Z?=\n\t=?us-ascii?Q?0SRA9F7rxft5yY11lmvUITX1rkZDn0t48obGYgWDt0upDMFkdsEMXkgYoklp?=\n\t=?us-ascii?Q?u5TMC8dhBUBbB+c5vDb8F/7peJ5poLwJZkxjpASASxKPClMsYcENi/Cs+uWO?=\n\t=?us-ascii?Q?GL890FC/I//hLsmiFuRmM/B49xEqQZ01bpi1/E9IErIPt9wiTu9+Xgou2nZ1?=\n\t=?us-ascii?Q?ODlRWGgJCaR++MqtVYo5aOMhwxlpBu4p6JF9sM9x8JS9eI3ZTM7rchgBop5y?=\n\t=?us-ascii?Q?iizhv/UiZQA3WocTCu6mAORF4m183X9rQhHNNJ39pLSlPVLU737LjPZPxVDd?=\n\t=?us-ascii?Q?gMYjTzV8xNo++yVlXH2Uw8Dc+pAwvmUQ2rZlc4rI4IowVeYwQPicau8Tj0ku?=\n\t=?us-ascii?Q?RMhmpRuq5/Z0JlEEO39Pjuw1nNEF/I/nDU1pSqge9Hxmmd6zArQRvkWQHMkv?=\n\t=?us-ascii?Q?x5IGnt6ADzxSIdPGmg1PpIWAS7prWZM33QLEuWngS3A8vskObkIAB0JvQbO7?=\n\t=?us-ascii?Q?hBkHRofRhVROThjGvDmHya0PU+dW29yXKTY606eP1pzViUsqordjBrIqxRe1?=\n\t=?us-ascii?Q?eX8vBlF6xNdS2nildrQGdjD/b1U2D6NdVoAl8IQLYspsKgwd7oEGmvLsmd9J?=\n\t=?us-ascii?Q?xArcPIrrUbnSsu7lxgDt8t1ELb9pyCCEL6XsD/0bkT0xspOjsm0cIzCrgjal?=\n\t=?us-ascii?Q?NYrExCHFbQ43FY6Xsmvd2DB3h06cV8nKc8cuavc4zPEJd26+thrfnBnJC3M0?=\n\t=?us-ascii?Q?MYqOirUIEnF/j5Bju4+n38q9FlKMc+3SL/Dv47e84GTLOeCFWm8ZaL2h1/rd?=\n\t=?us-ascii?Q?7zS7yKBHxw=3D?=",
            "1; SN1PR07MB2254;\n\t6:ciSAaykI6jZpjvWbLF91aJV+xqq+ov/T6iVplOvbsmuqNpslDO+qAmjVzoDMFj7cfFrQ4ZVRVSfjMW5Wqj6JKzivK9oN4DEmWy2CRpV7tnoiCe3XnAY/rlhJYaZwYVWFUDqB7cw87eciNkpRKLK+3HhXkoreuVbmoNRU6RgcbCvuXnK4suHPVPmu63hEurSZrx5jLD3PL9PON2ZpJV9JPysQ/ojwbG+IxcArxxTIhk7iCPX4Q9q9hYTAx87TXiclgNLdVss79DjWn+Rn7UCv9nFoT1UkGAc7IhbV9/HrNuA=;\n\t5:hyqmUpFy0fcUG1v+5tstQnKqYdl4wdjLZ47E6N361gH1g3/Hm+slEur3ZuTE0MA9BGr2F7wJG/SykW3qdxeW2NZVZCKwQu55HBGtsZnVLdLtxnq0Jp2KNCnGCF6tPI9axHKXf2Hbv22r2RlIz6gvaw==;\n\t24:sESNxJn+zoer/xyoKKKnxFHmVklCb7hBwF/jAr4+uQ6/H4sEwF0TmbCmYpY9QUT/g38muFmbRl7GDz9DB/2tDKKpFoS3MiPxScpL1Aos71I=;\n\t7:Lyvxpzm+RoTftHyLvsjymnDLllSZopkSGdmIwjLHDFg93FdWumgvePldL09tARgcacZQmCcu++s8MerHnOWfm+v9kCGKx5mAaI/5F9Nj98CTuK+L2h1Ej9SGVCtiJ1t7Vfw4+cOuux8IWOYHt8q7oljDiRZhtlGpdosQ8iYiN7ZkdP3FavKhAB44+Iy7KWaVwsCVRUX/b359w7vvzYK77Skobj/2Se+6lYuj3rbKgtcOsat2cEWOLv2BVF8+6Vkh"
        ],
        "X-Microsoft-Antispam": "UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR07MB2254;",
        "X-Microsoft-Antispam-PRVS": "<SN1PR07MB22545E38D4FE4A09FA6E8708EE2B0@SN1PR07MB2254.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);\n\tSRVR:SN1PR07MB2254; BCL:0; PCL:0; RULEID:; SRVR:SN1PR07MB2254;",
        "X-Forefront-PRVS": "098076C36C",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(199003)(189002)(66066001)(4001430100002)(4326007)(5003940100001)(36756003)(2906002)(47776003)(19580395003)(50226002)(7736002)(5001770100001)(42186005)(97736004)(19580405001)(189998001)(106356001)(81166006)(92566002)(81156014)(8676002)(77096005)(33646002)(105586002)(50986999)(76176999)(586003)(2950100001)(48376002)(76506005)(68736007)(101416001)(107886002)(7846002)(3846002)(50466002)(229853001)(6116002)(2101003);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR07MB2254; H:localhost;\n\tFPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; ",
        "Received-SPF": "None (protection.outlook.com: caviumnetworks.com does not\n\tdesignate permitted sender hosts)",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "21 Jun 2016 05:11:09.7389\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SN1PR07MB2254"
    },
    "content": "From: Andrew Pinski <apinski@cavium.com>\n\nIn ILP32, the sigaction struct is the same as AARCH64 so we need\nthe header file kernel_sigaction.h.  To allow for this to work,\nwe use a long long fields and then add extra casts when converting\nbetween the user exposed struct and the kernel exposed struct.\n\n* sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h: New file.\n* sysdeps/unix/sysv/linux/aarch64/sigaction.c (__libc_sigaction):\nAdd cast here it is necessary.\n\nSigned-off-by: Yury Norov <ynorov@caviumnetworks.com>\n---\n sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h | 12 ++++++++++++\n sysdeps/unix/sysv/linux/aarch64/sigaction.c        | 10 ++++++----\n 2 files changed, 18 insertions(+), 4 deletions(-)\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h",
    "diff": "diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h b/sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h\nnew file mode 100644\nindex 0000000..7b3023b\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h\n@@ -0,0 +1,12 @@\n+\n+#define HAVE_SA_RESTORER\n+\n+/* This is the sigaction structure in aarch64 kernel.\n+   Note the ILP32 struct uses the same struct as LP64\n+   which is why the fields are 64bit in size. */\n+struct kernel_sigaction {\n+\tunsigned long long k_sa_handler;\n+\tunsigned long long sa_flags;\n+\tunsigned long long sa_restorer;\n+\tsigset_t sa_mask;\n+};\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/sigaction.c b/sysdeps/unix/sysv/linux/aarch64/sigaction.c\nindex 3291924..40a327f 100644\n--- a/sysdeps/unix/sysv/linux/aarch64/sigaction.c\n+++ b/sysdeps/unix/sysv/linux/aarch64/sigaction.c\n@@ -39,15 +39,17 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)\n \n   if (act)\n     {\n-      kact.k_sa_handler = act->sa_handler;\n+      kact.k_sa_handler = (unsigned long long)(uintptr_t)act->sa_handler;\n       memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));\n       kact.sa_flags = act->sa_flags;\n #ifdef HAVE_SA_RESTORER\n       if (kact.sa_flags & SA_RESTORER)\n-\tkact.sa_restorer = act->sa_restorer;\n+\tkact.sa_restorer = (unsigned long long)(uintptr_t)act->sa_restorer;\n #endif\n     }\n \n+  /* This is needed for ILP32 as the structures are two different sizes due to\n+     using the LP64 structure.  */\n   result = INLINE_SYSCALL (rt_sigaction, 4, sig,\n \t\t\t   act ? &kact : NULL,\n \t\t\t   oact ? &koact : NULL, _NSIG / 8);\n@@ -55,11 +57,11 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)\n     {\n       if (oact && result >= 0)\n \t{\n-\t  oact->sa_handler = koact.k_sa_handler;\n+\t  oact->sa_handler = (void*)(uintptr_t)koact.k_sa_handler;\n \t  memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));\n \t  oact->sa_flags = koact.sa_flags;\n #ifdef HAVE_SA_RESTORER\n-\t  oact->sa_restorer = koact.sa_restorer;\n+\t  oact->sa_restorer = (void*)(uintptr_t)koact.sa_restorer;\n #endif\n \t}\n     }\n",
    "prefixes": [
        "18/27",
        "AARCH64"
    ]
}