[{"id":1763982,"web_url":"http://patchwork.ozlabs.org/comment/1763982/","msgid":"<20170906101251.5gy53sbbkikpfg3y@pd.tnic>","list_archive_url":null,"date":"2017-09-06T10:12:51","subject":"Re: [PATCH v2 1/3] arm64/ras: support sea error recovery","submitter":{"id":47897,"url":"http://patchwork.ozlabs.org/api/people/47897/","name":"Borislav Petkov","email":"bp@suse.de"},"content":"On Tue, Sep 05, 2017 at 07:06:04PM +0800, Xie XiuQi wrote:\n> With ARM v8.2 RAS Extension, SEA are usually triggered when memory errors\n> are consumed. In some cases, if the error address is in a clean page or a\n> read-only page, there is a chance to recover. Such as error occurs in a\n> instruction page, we can reread this page from disk instead of killing process.\n> \n> Because memory_failure() may sleep, we can not call it directly in SEA exception\n> context. So we saved faulting physical address associated with a process in the\n> ghes handler and set __TIF_SEA_NOTIFY. When we return from SEA exception context\n> and get into do_notify_resume() before the process running, we could check it\n> and call memory_failure() to do recovery. It's safe, because we are in process\n> context.\n> \n> Signed-off-by: Xie XiuQi <xiexiuqi@huawei.com>\n> Signed-off-by: Wang Xiongfeng <wangxiongfeng2@huawei.com>\n> ---\n>  arch/arm64/Kconfig                   |  11 +++\n>  arch/arm64/include/asm/ras.h         |  36 +++++++++\n>  arch/arm64/include/asm/thread_info.h |   4 +-\n>  arch/arm64/kernel/Makefile           |   1 +\n>  arch/arm64/kernel/ras.c              | 143 +++++++++++++++++++++++++++++++++++\n>  arch/arm64/kernel/signal.c           |   8 ++\n>  arch/arm64/mm/fault.c                |  27 +++++--\n>  drivers/acpi/apei/ghes.c             |   4 +-\n>  8 files changed, 223 insertions(+), 11 deletions(-)\n>  create mode 100644 arch/arm64/include/asm/ras.h\n>  create mode 100644 arch/arm64/kernel/ras.c\n\nPlease integrate scripts/checkpatch.pl into your patch creation workflow\nand run all patches through it before submitting:\n\nERROR: code indent should use tabs where possible\n#200: FILE: arch/arm64/kernel/ras.c:42:\n+        atomic_t                inuse;$\n\nWARNING: please, no spaces at the start of a line\n#200: FILE: arch/arm64/kernel/ras.c:42:\n+        atomic_t                inuse;$\n\nERROR: code indent should use tabs where possible\n#201: FILE: arch/arm64/kernel/ras.c:43:\n+        struct task_struct      *t;$\n\nWARNING: please, no spaces at the start of a line\n#201: FILE: arch/arm64/kernel/ras.c:43:\n+        struct task_struct      *t;$\n\nERROR: code indent should use tabs where possible\n#202: FILE: arch/arm64/kernel/ras.c:44:\n+        __u64                   paddr;$\n\nWARNING: please, no spaces at the start of a line\n#202: FILE: arch/arm64/kernel/ras.c:44:\n+        __u64                   paddr;$\n\nERROR: code indent should use tabs where possible\n#207: FILE: arch/arm64/kernel/ras.c:49:\n+        struct sea_info *si;$\n\nWARNING: please, no spaces at the start of a line\n#207: FILE: arch/arm64/kernel/ras.c:49:\n+        struct sea_info *si;$\n\nERROR: code indent should use tabs where possible\n#209: FILE: arch/arm64/kernel/ras.c:51:\n+        for (si = sea_info; si < &sea_info[SEA_INFO_MAX]; si++) {$\n\nWARNING: please, no spaces at the start of a line\n#209: FILE: arch/arm64/kernel/ras.c:51:\n+        for (si = sea_info; si < &sea_info[SEA_INFO_MAX]; si++) {$\n\nERROR: code indent should use tabs where possible\n#210: FILE: arch/arm64/kernel/ras.c:52:\n+                if (atomic_cmpxchg(&si->inuse, 0, 1) == 0) {$\n\nWARNING: please, no spaces at the start of a line\n#210: FILE: arch/arm64/kernel/ras.c:52:\n+                if (atomic_cmpxchg(&si->inuse, 0, 1) == 0) {$\n\nERROR: code indent should use tabs where possible\n#211: FILE: arch/arm64/kernel/ras.c:53:\n+                        si->t = current;$\n\nWARNING: please, no spaces at the start of a line\n#211: FILE: arch/arm64/kernel/ras.c:53:\n+                        si->t = current;$\n\nERROR: code indent should use tabs where possible\n#212: FILE: arch/arm64/kernel/ras.c:54:\n+                        si->paddr = addr;$\n\nWARNING: please, no spaces at the start of a line\n#212: FILE: arch/arm64/kernel/ras.c:54:\n+                        si->paddr = addr;$\n\nERROR: code indent should use tabs where possible\n#213: FILE: arch/arm64/kernel/ras.c:55:\n+                        return true;$\n\nWARNING: please, no spaces at the start of a line\n#213: FILE: arch/arm64/kernel/ras.c:55:\n+                        return true;$\n\nERROR: code indent should use tabs where possible\n#214: FILE: arch/arm64/kernel/ras.c:56:\n+                }$\n\nWARNING: please, no spaces at the start of a line\n#214: FILE: arch/arm64/kernel/ras.c:56:\n+                }$\n\nERROR: code indent should use tabs where possible\n#215: FILE: arch/arm64/kernel/ras.c:57:\n+        }$\n\nWARNING: please, no spaces at the start of a line\n#215: FILE: arch/arm64/kernel/ras.c:57:\n+        }$\n\nERROR: code indent should use tabs where possible\n#223: FILE: arch/arm64/kernel/ras.c:65:\n+        struct sea_info *si;$\n\nWARNING: please, no spaces at the start of a line\n#223: FILE: arch/arm64/kernel/ras.c:65:\n+        struct sea_info *si;$\n\nERROR: code indent should use tabs where possible\n#225: FILE: arch/arm64/kernel/ras.c:67:\n+        for (si = sea_info; si < &sea_info[SEA_INFO_MAX]; si++)$\n\nWARNING: please, no spaces at the start of a line\n#225: FILE: arch/arm64/kernel/ras.c:67:\n+        for (si = sea_info; si < &sea_info[SEA_INFO_MAX]; si++)$\n\nERROR: code indent should use tabs where possible\n#226: FILE: arch/arm64/kernel/ras.c:68:\n+                if (atomic_read(&si->inuse) && si->t == current)$\n\nWARNING: please, no spaces at the start of a line\n#226: FILE: arch/arm64/kernel/ras.c:68:\n+                if (atomic_read(&si->inuse) && si->t == current)$\n\nERROR: code indent should use tabs where possible\n#227: FILE: arch/arm64/kernel/ras.c:69:\n+                        return si;$\n\nWARNING: please, no spaces at the start of a line\n#227: FILE: arch/arm64/kernel/ras.c:69:\n+                        return si;$\n\nERROR: code indent should use tabs where possible\n#228: FILE: arch/arm64/kernel/ras.c:70:\n+        return NULL;$\n\nWARNING: please, no spaces at the start of a line\n#228: FILE: arch/arm64/kernel/ras.c:70:\n+        return NULL;$\n\nERROR: code indent should use tabs where possible\n#233: FILE: arch/arm64/kernel/ras.c:75:\n+        atomic_set(&si->inuse, 0);$\n\nWARNING: please, no spaces at the start of a line\n#233: FILE: arch/arm64/kernel/ras.c:75:\n+        atomic_set(&si->inuse, 0);$\n\nWARNING: braces {} are not necessary for single statement blocks\n#265: FILE: arch/arm64/kernel/ras.c:107:\n+\t\tif (memory_failure(pfn, 0, flags) < 0) {\n+\t\t\tfail++;\n+\t\t}\n\nWARNING: braces {} are not necessary for single statement blocks\n#293: FILE: arch/arm64/kernel/ras.c:135:\n+\t\tif (err_info->validation_bits & CPER_ARM_INFO_VALID_PHYSICAL_ADDR) {\n+\t\t\tinfo_saved |= sea_save_info(err_info->physical_fault_addr);\n+\t\t}\n\ntotal: 17 errors, 21 warnings, 299 lines checked\n\nNOTE: For some of the reported defects, checkpatch may be able to\n      mechanically convert to the typical style using --fix or --fix-inplace.\n\nNOTE: Whitespace errors detected.\n      You may wish to use scripts/cleanpatch or scripts/cleanfile\n\nYour patch has style problems, please review.\n\nNOTE: If any of the errors are false positives, please report\n      them to the maintainer, see CHECKPATCH in MAINTAINERS.","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org\n\theader.b=\"RA7CjL43\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\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 3xnKDr4sR7z9sBd\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tWed,  6 Sep 2017 20:14:04 +1000 (AEST)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dpXLM-0007Lj-GG; Wed, 06 Sep 2017 10:14:00 +0000","from mx2.suse.de ([195.135.220.15] helo=mx1.suse.de)\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dpXLI-0007Hz-9k for linux-arm-kernel@lists.infradead.org;\n\tWed, 06 Sep 2017 10:13:58 +0000","from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254])\n\tby mx1.suse.de (Postfix) with ESMTP id CF071AC61;\n\tWed,  6 Sep 2017 10:13:32 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:\n\tMessage-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=aSjG5U8KLlMO6TjAQrDZgzmvDlEWtOtikbzYyVcn6Ug=;\n\tb=RA7CjL43h4n7RG\n\tosexDgUrWlUaOrrKD5gQD2zpwETJizAFj8hDHWM6MXM5Dp3fqqqMpBVtCiU/PVjOSkHnqV3eZA03a\n\t2nIf4fMyzf4JbvCT8TPV8RNVGQfX+OMz3hDIQC4lRNvnAdmAaklTBZrlsy1+rl2eUs2hkB3meojnV\n\t1p9OvffpuEee6k8DJioy9rEHnaEpsM9VbWVVmCZ1O3Fu+Lx/PTf2aBP7JzB7JRtuAH9yfZqLm3M9u\n\tsKKOUkq0JzDv9PJ86tK96ujc6uG8iDqaQLTBhV6Rut06sMzJ7nHlOtVNyNVBAumKbmbwMo3HqMiW0\n\tR3RRflHm0fGsaQqz8iRw==;","X-Virus-Scanned":"by amavisd-new at test-mx.suse.de","Date":"Wed, 6 Sep 2017 12:12:51 +0200","From":"Borislav Petkov <bp@suse.de>","To":"Xie XiuQi <xiexiuqi@huawei.com>","Subject":"Re: [PATCH v2 1/3] arm64/ras: support sea error recovery","Message-ID":"<20170906101251.5gy53sbbkikpfg3y@pd.tnic>","References":"<1504609566-66318-1-git-send-email-xiexiuqi@huawei.com>\n\t<1504609566-66318-2-git-send-email-xiexiuqi@huawei.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<1504609566-66318-2-git-send-email-xiexiuqi@huawei.com>","User-Agent":"NeoMutt/20170113 (1.7.2)","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20170906_031356_694389_09E1FD4B ","X-CRM114-Status":"GOOD (  14.81  )","X-Spam-Score":"-4.2 (----)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-4.2 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at http://www.dnswl.org/,\n\tmedium trust [195.135.220.15 listed in list.dnswl.org]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t-0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay\n\tdomain\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"mark.rutland@arm.com, wangkefeng.wang@huawei.com, zjzhang@codeaurora.org,\n\tcatalin.marinas@arm.com, stephen.boyd@linaro.org, will.deacon@arm.com,\n\tlijinyue@huawei.com, huawei.libin@huawei.com, guohanjun@huawei.com,\n\twangxiongfeng2@huawei.com, takahiro.akashi@linaro.org,\n\tgengdongjiu@huawei.com, \n\tlinux-acpi@vger.kernel.org, mingo@redhat.com, Dave.Martin@arm.com,\n\ttbaicar@codeaurora.org, zhengqiang10@huawei.com,\n\tlinux-arm-kernel@lists.infradead.org, ard.biesheuvel@linaro.org,\n\tlinux-kernel@vger.kernel.org, james.morse@arm.com, shiju.jose@huawei.com","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1764498,"web_url":"http://patchwork.ozlabs.org/comment/1764498/","msgid":"<281c6244-2203-e06c-1850-f07c6fba4954@huawei.com>","list_archive_url":null,"date":"2017-09-07T04:22:15","subject":"Re: [PATCH v2 1/3] arm64/ras: support sea error recovery","submitter":{"id":24815,"url":"http://patchwork.ozlabs.org/api/people/24815/","name":"Xie XiuQi","email":"xiexiuqi@huawei.com"},"content":"Hi Borislav,\n\nOn 2017/9/6 18:12, Borislav Petkov wrote:\n> On Tue, Sep 05, 2017 at 07:06:04PM +0800, Xie XiuQi wrote:\n>> With ARM v8.2 RAS Extension, SEA are usually triggered when memory errors\n>> are consumed. In some cases, if the error address is in a clean page or a\n>> read-only page, there is a chance to recover. Such as error occurs in a\n>> instruction page, we can reread this page from disk instead of killing process.\n>>\n>> Because memory_failure() may sleep, we can not call it directly in SEA exception\n>> context. So we saved faulting physical address associated with a process in the\n>> ghes handler and set __TIF_SEA_NOTIFY. When we return from SEA exception context\n>> and get into do_notify_resume() before the process running, we could check it\n>> and call memory_failure() to do recovery. It's safe, because we are in process\n>> context.\n>>\n>> Signed-off-by: Xie XiuQi <xiexiuqi@huawei.com>\n>> Signed-off-by: Wang Xiongfeng <wangxiongfeng2@huawei.com>\n>> ---\n>>  arch/arm64/Kconfig                   |  11 +++\n>>  arch/arm64/include/asm/ras.h         |  36 +++++++++\n>>  arch/arm64/include/asm/thread_info.h |   4 +-\n>>  arch/arm64/kernel/Makefile           |   1 +\n>>  arch/arm64/kernel/ras.c              | 143 +++++++++++++++++++++++++++++++++++\n>>  arch/arm64/kernel/signal.c           |   8 ++\n>>  arch/arm64/mm/fault.c                |  27 +++++--\n>>  drivers/acpi/apei/ghes.c             |   4 +-\n>>  8 files changed, 223 insertions(+), 11 deletions(-)\n>>  create mode 100644 arch/arm64/include/asm/ras.h\n>>  create mode 100644 arch/arm64/kernel/ras.c\n> \n> Please integrate scripts/checkpatch.pl into your patch creation workflow\n> and run all patches through it before submitting:\n\nSorry for my mistake. I'll fix it, thanks.\n\n> \n> ERROR: code indent should use tabs where possible\n> #200: FILE: arch/arm64/kernel/ras.c:42:\n> +        atomic_t                inuse;$\n> \n> WARNING: please, no spaces at the start of a line\n> #200: FILE: arch/arm64/kernel/ras.c:42:\n> +        atomic_t                inuse;$\n> \n> ERROR: code indent should use tabs where possible\n> #201: FILE: arch/arm64/kernel/ras.c:43:\n> +        struct task_struct      *t;$\n> \n> WARNING: please, no spaces at the start of a line\n> #201: FILE: arch/arm64/kernel/ras.c:43:\n> +        struct task_struct      *t;$\n> \n> ERROR: code indent should use tabs where possible\n> #202: FILE: arch/arm64/kernel/ras.c:44:\n> +        __u64                   paddr;$\n> \n> WARNING: please, no spaces at the start of a line\n> #202: FILE: arch/arm64/kernel/ras.c:44:\n> +        __u64                   paddr;$\n> \n> ERROR: code indent should use tabs where possible\n> #207: FILE: arch/arm64/kernel/ras.c:49:\n> +        struct sea_info *si;$\n> \n> WARNING: please, no spaces at the start of a line\n> #207: FILE: arch/arm64/kernel/ras.c:49:\n> +        struct sea_info *si;$\n> \n> ERROR: code indent should use tabs where possible\n> #209: FILE: arch/arm64/kernel/ras.c:51:\n> +        for (si = sea_info; si < &sea_info[SEA_INFO_MAX]; si++) {$\n> \n> WARNING: please, no spaces at the start of a line\n> #209: FILE: arch/arm64/kernel/ras.c:51:\n> +        for (si = sea_info; si < &sea_info[SEA_INFO_MAX]; si++) {$\n> \n> ERROR: code indent should use tabs where possible\n> #210: FILE: arch/arm64/kernel/ras.c:52:\n> +                if (atomic_cmpxchg(&si->inuse, 0, 1) == 0) {$\n> \n> WARNING: please, no spaces at the start of a line\n> #210: FILE: arch/arm64/kernel/ras.c:52:\n> +                if (atomic_cmpxchg(&si->inuse, 0, 1) == 0) {$\n> \n> ERROR: code indent should use tabs where possible\n> #211: FILE: arch/arm64/kernel/ras.c:53:\n> +                        si->t = current;$\n> \n> WARNING: please, no spaces at the start of a line\n> #211: FILE: arch/arm64/kernel/ras.c:53:\n> +                        si->t = current;$\n> \n> ERROR: code indent should use tabs where possible\n> #212: FILE: arch/arm64/kernel/ras.c:54:\n> +                        si->paddr = addr;$\n> \n> WARNING: please, no spaces at the start of a line\n> #212: FILE: arch/arm64/kernel/ras.c:54:\n> +                        si->paddr = addr;$\n> \n> ERROR: code indent should use tabs where possible\n> #213: FILE: arch/arm64/kernel/ras.c:55:\n> +                        return true;$\n> \n> WARNING: please, no spaces at the start of a line\n> #213: FILE: arch/arm64/kernel/ras.c:55:\n> +                        return true;$\n> \n> ERROR: code indent should use tabs where possible\n> #214: FILE: arch/arm64/kernel/ras.c:56:\n> +                }$\n> \n> WARNING: please, no spaces at the start of a line\n> #214: FILE: arch/arm64/kernel/ras.c:56:\n> +                }$\n> \n> ERROR: code indent should use tabs where possible\n> #215: FILE: arch/arm64/kernel/ras.c:57:\n> +        }$\n> \n> WARNING: please, no spaces at the start of a line\n> #215: FILE: arch/arm64/kernel/ras.c:57:\n> +        }$\n> \n> ERROR: code indent should use tabs where possible\n> #223: FILE: arch/arm64/kernel/ras.c:65:\n> +        struct sea_info *si;$\n> \n> WARNING: please, no spaces at the start of a line\n> #223: FILE: arch/arm64/kernel/ras.c:65:\n> +        struct sea_info *si;$\n> \n> ERROR: code indent should use tabs where possible\n> #225: FILE: arch/arm64/kernel/ras.c:67:\n> +        for (si = sea_info; si < &sea_info[SEA_INFO_MAX]; si++)$\n> \n> WARNING: please, no spaces at the start of a line\n> #225: FILE: arch/arm64/kernel/ras.c:67:\n> +        for (si = sea_info; si < &sea_info[SEA_INFO_MAX]; si++)$\n> \n> ERROR: code indent should use tabs where possible\n> #226: FILE: arch/arm64/kernel/ras.c:68:\n> +                if (atomic_read(&si->inuse) && si->t == current)$\n> \n> WARNING: please, no spaces at the start of a line\n> #226: FILE: arch/arm64/kernel/ras.c:68:\n> +                if (atomic_read(&si->inuse) && si->t == current)$\n> \n> ERROR: code indent should use tabs where possible\n> #227: FILE: arch/arm64/kernel/ras.c:69:\n> +                        return si;$\n> \n> WARNING: please, no spaces at the start of a line\n> #227: FILE: arch/arm64/kernel/ras.c:69:\n> +                        return si;$\n> \n> ERROR: code indent should use tabs where possible\n> #228: FILE: arch/arm64/kernel/ras.c:70:\n> +        return NULL;$\n> \n> WARNING: please, no spaces at the start of a line\n> #228: FILE: arch/arm64/kernel/ras.c:70:\n> +        return NULL;$\n> \n> ERROR: code indent should use tabs where possible\n> #233: FILE: arch/arm64/kernel/ras.c:75:\n> +        atomic_set(&si->inuse, 0);$\n> \n> WARNING: please, no spaces at the start of a line\n> #233: FILE: arch/arm64/kernel/ras.c:75:\n> +        atomic_set(&si->inuse, 0);$\n> \n> WARNING: braces {} are not necessary for single statement blocks\n> #265: FILE: arch/arm64/kernel/ras.c:107:\n> +\t\tif (memory_failure(pfn, 0, flags) < 0) {\n> +\t\t\tfail++;\n> +\t\t}\n> \n> WARNING: braces {} are not necessary for single statement blocks\n> #293: FILE: arch/arm64/kernel/ras.c:135:\n> +\t\tif (err_info->validation_bits & CPER_ARM_INFO_VALID_PHYSICAL_ADDR) {\n> +\t\t\tinfo_saved |= sea_save_info(err_info->physical_fault_addr);\n> +\t\t}\n> \n> total: 17 errors, 21 warnings, 299 lines checked\n> \n> NOTE: For some of the reported defects, checkpatch may be able to\n>       mechanically convert to the typical style using --fix or --fix-inplace.\n> \n> NOTE: Whitespace errors detected.\n>       You may wish to use scripts/cleanpatch or scripts/cleanfile\n> \n> Your patch has style problems, please review.\n> \n> NOTE: If any of the errors are false positives, please report\n>       them to the maintainer, see CHECKPATCH in MAINTAINERS.\n>","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org\n\theader.b=\"SOOosuPd\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\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 3xnnTl5TBSz9sNd\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tThu,  7 Sep 2017 14:26:49 +1000 (AEST)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dpoOq-0005iO-Uo; Thu, 07 Sep 2017 04:26:44 +0000","from szxga05-in.huawei.com ([45.249.212.191])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dpoOl-0005SY-27 for linux-arm-kernel@lists.infradead.org;\n\tThu, 07 Sep 2017 04:26:42 +0000","from 172.30.72.59 (EHLO DGGEMS402-HUB.china.huawei.com)\n\t([172.30.72.59])\n\tby dggrg05-dlp.huawei.com (MOS 4.4.6-GA FastPath queued)\n\twith ESMTP id DGU07311; Thu, 07 Sep 2017 12:22:39 +0800 (CST)","from [127.0.0.1] (10.177.19.210) by DGGEMS402-HUB.china.huawei.com\n\t(10.3.19.202) with Microsoft SMTP Server id 14.3.301.0;\n\tThu, 7 Sep 2017 12:22:32 +0800"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:\n\tMessage-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description\n\t:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=DEZ7fEaVZAyrakR7C3CzEQIX85yWNNZUru1+ErnGGKU=;\n\tb=SOOosuPdp8MHML\n\t+IZVt4DLPgFwayKVbUnJyDMSmoQO/tthD0f+KXmwKsboFBmRZoA4+HPSlPLgoQl9fgi41JLlio0wx\n\tPHi8b/FqiGo5uv2gJDl6cFysfwCIu3NCEc00G43eSpY7T9BS8CjPdJo/AkbyKmbmHVG2aPdgvJHdP\n\tEFSfttlbeoYb1OW9ydWqlS4YfroQnnyIdLRg2jexIiDlCcDdxcdu4yEiEkl2UjR97Fp1R1qcJyAEr\n\tV5futs3UzGCAP7BsWyzPsh6Dlp1epRiWkSz3stt6JGxhGvJb9moLrqvGUsjg4pMSTz2tM8jnNOf3t\n\tSkSfjH23oduiFYqOPRHw==;","Subject":"Re: [PATCH v2 1/3] arm64/ras: support sea error recovery","To":"Borislav Petkov <bp@suse.de>","References":"<1504609566-66318-1-git-send-email-xiexiuqi@huawei.com>\n\t<1504609566-66318-2-git-send-email-xiexiuqi@huawei.com>\n\t<20170906101251.5gy53sbbkikpfg3y@pd.tnic>","From":"Xie XiuQi <xiexiuqi@huawei.com>","Message-ID":"<281c6244-2203-e06c-1850-f07c6fba4954@huawei.com>","Date":"Thu, 7 Sep 2017 12:22:15 +0800","User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101\n\tThunderbird/45.8.0","MIME-Version":"1.0","In-Reply-To":"<20170906101251.5gy53sbbkikpfg3y@pd.tnic>","X-Originating-IP":"[10.177.19.210]","X-CFilter-Loop":"Reflected","X-Mirapoint-Virus-RAPID-Raw":"score=unknown(0),\n\trefid=str=0001.0A020204.59B0C990.0020, ss=1, re=0.000, recu=0.000,\n\treip=0.000, cl=1, cld=1, fgs=0, ip=0.0.0.0,\n\tso=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32","X-Mirapoint-Loop-Id":"b31657a25d30935dd95711cf92fcc8c9","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20170906_212639_605748_FF0377A0 ","X-CRM114-Status":"GOOD (  14.96  )","X-Spam-Score":"-1.9 (-)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-1.9 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t-0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay\n\tdomain\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"mark.rutland@arm.com, wangkefeng.wang@huawei.com, zjzhang@codeaurora.org,\n\tcatalin.marinas@arm.com, stephen.boyd@linaro.org, will.deacon@arm.com,\n\tlijinyue@huawei.com, huawei.libin@huawei.com, guohanjun@huawei.com,\n\twangxiongfeng2@huawei.com, takahiro.akashi@linaro.org,\n\tgengdongjiu@huawei.com, \n\tlinux-acpi@vger.kernel.org, mingo@redhat.com, Dave.Martin@arm.com,\n\ttbaicar@codeaurora.org, zhengqiang10@huawei.com,\n\tlinux-arm-kernel@lists.infradead.org, ard.biesheuvel@linaro.org,\n\tlinux-kernel@vger.kernel.org, james.morse@arm.com, shiju.jose@huawei.com","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}}]