{"id":818312,"url":"http://patchwork.ozlabs.org/api/patches/818312/?format=json","web_url":"http://patchwork.ozlabs.org/project/sparclinux/patch/14699ded812ff03644cb0446be7b4d18893550be.1506089472.git.khalid.aziz@oracle.com/","project":{"id":10,"url":"http://patchwork.ozlabs.org/api/projects/10/?format=json","name":"Linux SPARC Development ","link_name":"sparclinux","list_id":"sparclinux.vger.kernel.org","list_email":"sparclinux@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<14699ded812ff03644cb0446be7b4d18893550be.1506089472.git.khalid.aziz@oracle.com>","list_archive_url":null,"date":"2017-09-25T16:48:52","name":"[v8,1/9] signals, sparc: Add signal codes for ADI violations","commit_ref":null,"pull_url":null,"state":"changes-requested","archived":false,"hash":"091324841c0766ce6d61e39c3deb4a3838ace27c","submitter":{"id":42386,"url":"http://patchwork.ozlabs.org/api/people/42386/?format=json","name":"Khalid Aziz","email":"khalid.aziz@oracle.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/sparclinux/patch/14699ded812ff03644cb0446be7b4d18893550be.1506089472.git.khalid.aziz@oracle.com/mbox/","series":[{"id":4990,"url":"http://patchwork.ozlabs.org/api/series/4990/?format=json","web_url":"http://patchwork.ozlabs.org/project/sparclinux/list/?series=4990","date":"2017-09-25T16:48:55","name":"Application Data Integrity feature introduced by SPARC M7","version":8,"mbox":"http://patchwork.ozlabs.org/series/4990/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/818312/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/818312/checks/","tags":{},"related":[],"headers":{"Return-Path":"<sparclinux-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=sparclinux-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y198x16q7z9t5c\n\tfor <patchwork-incoming@ozlabs.org>;\n\tTue, 26 Sep 2017 02:51:45 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1754126AbdIYQvb (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tMon, 25 Sep 2017 12:51:31 -0400","from aserp1040.oracle.com ([141.146.126.69]:40575 \"EHLO\n\taserp1040.oracle.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1754093AbdIYQv3 (ORCPT\n\t<rfc822; sparclinux@vger.kernel.org>); Mon, 25 Sep 2017 12:51:29 -0400","from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234])\n\tby aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2)\n\twith ESMTP id v8PGp8Xa021134\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256\n\tverify=OK); Mon, 25 Sep 2017 16:51:08 GMT","from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236])\n\tby aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id\n\tv8PGp80d018493\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256\n\tverify=OK); Mon, 25 Sep 2017 16:51:08 GMT","from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25])\n\tby aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id\n\tv8PGp46m014166; Mon, 25 Sep 2017 16:51:04 GMT","from concerto.us.oracle.com (/24.9.64.241)\n\tby default (Oracle Beehive Gateway v4.0)\n\twith ESMTP ; Mon, 25 Sep 2017 09:51:04 -0700"],"From":"Khalid Aziz <khalid.aziz@oracle.com>","To":"arnd@arndb.de, hpa@zytor.com, davem@davemloft.net,\n\tdave.hansen@linux.intel.com","Cc":"Khalid Aziz <khalid.aziz@oracle.com>, 0x7f454c46@gmail.com,\n\ttglx@linutronix.de, mingo@redhat.com, x86@kernel.org,\n\tjroedel@suse.de, linux-kernel@vger.kernel.org,\n\tlinux-arch@vger.kernel.org, sparclinux@vger.kernel.org,\n\tKhalid Aziz <khalid@gonehiking.org>","Subject":"[PATCH v8 1/9] signals, sparc: Add signal codes for ADI violations","Date":"Mon, 25 Sep 2017 10:48:52 -0600","Message-Id":"<14699ded812ff03644cb0446be7b4d18893550be.1506089472.git.khalid.aziz@oracle.com>","X-Mailer":"git-send-email 2.11.0","In-Reply-To":["<cover.1506089472.git.khalid.aziz@oracle.com>","<cover.1506089472.git.khalid.aziz@oracle.com>"],"References":["<cover.1506089472.git.khalid.aziz@oracle.com>","<cover.1506089472.git.khalid.aziz@oracle.com>"],"X-Source-IP":"aserv0022.oracle.com [141.146.126.234]","Sender":"sparclinux-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<sparclinux.vger.kernel.org>","X-Mailing-List":"sparclinux@vger.kernel.org"},"content":"SPARC M7 processor introduces a new feature - Application Data\nIntegrity (ADI). ADI allows MMU to  catch rogue accesses to memory.\nWhen a rogue access occurs, MMU blocks the access and raises an\nexception. In response to the exception, kernel sends the offending\ntask a SIGSEGV with si_code that indicates the nature of exception.\nThis patch adds three new signal codes specific to ADI feature:\n\n1. ADI is not enabled for the address and task attempted to access\n   memory using ADI\n2. Task attempted to access memory using wrong ADI tag and caused\n   a deferred exception.\n3. Task attempted to access memory using wrong ADI tag and caused\n   a precise exception.\n\nSigned-off-by: Khalid Aziz <khalid.aziz@oracle.com>\nCc: Khalid Aziz <khalid@gonehiking.org>\n---\n arch/x86/kernel/signal_compat.c    | 2 +-\n include/uapi/asm-generic/siginfo.h | 5 ++++-\n 2 files changed, 5 insertions(+), 2 deletions(-)","diff":"diff --git a/arch/x86/kernel/signal_compat.c b/arch/x86/kernel/signal_compat.c\nindex 71beb28600d4..e6e0b50230c3 100644\n--- a/arch/x86/kernel/signal_compat.c\n+++ b/arch/x86/kernel/signal_compat.c\n@@ -26,7 +26,7 @@ static inline void signal_compat_build_tests(void)\n \t */\n \tBUILD_BUG_ON(NSIGILL  != 8);\n \tBUILD_BUG_ON(NSIGFPE  != 8);\n-\tBUILD_BUG_ON(NSIGSEGV != 4);\n+\tBUILD_BUG_ON(NSIGSEGV != 7);\n \tBUILD_BUG_ON(NSIGBUS  != 5);\n \tBUILD_BUG_ON(NSIGTRAP != 4);\n \tBUILD_BUG_ON(NSIGCHLD != 6);\ndiff --git a/include/uapi/asm-generic/siginfo.h b/include/uapi/asm-generic/siginfo.h\nindex 9c4eca6b374a..72b435beb930 100644\n--- a/include/uapi/asm-generic/siginfo.h\n+++ b/include/uapi/asm-generic/siginfo.h\n@@ -224,7 +224,10 @@ typedef struct siginfo {\n #define SEGV_ACCERR\t(__SI_FAULT|2)\t/* invalid permissions for mapped object */\n #define SEGV_BNDERR\t(__SI_FAULT|3)  /* failed address bound checks */\n #define SEGV_PKUERR\t(__SI_FAULT|4)  /* failed protection key checks */\n-#define NSIGSEGV\t4\n+#define SEGV_ACCADI\t(__SI_FAULT|5)\t/* ADI not enabled for mapped object */\n+#define SEGV_ADIDERR\t(__SI_FAULT|6)\t/* Disrupting MCD error */\n+#define SEGV_ADIPERR\t(__SI_FAULT|7)\t/* Precise MCD exception */\n+#define NSIGSEGV\t7\n \n /*\n  * SIGBUS si_codes\n","prefixes":["v8","1/9"]}