From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755133AbdKAS7T (ORCPT ); Wed, 1 Nov 2017 14:59:19 -0400 Received: from mail-dm3nam03on0071.outbound.protection.outlook.com ([104.47.41.71]:18377 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754865AbdKAS7Q (ORCPT ); Wed, 1 Nov 2017 14:59:16 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yazen.Ghannam@amd.com; From: Yazen Ghannam To: linux-edac@vger.kernel.org Cc: Borislav Petkov , Tony Luck , x86@kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] x86/MCE/AMD: Always give PANIC severity for UC errors IN_KERNEL context Date: Wed, 1 Nov 2017 13:59:06 -0500 Message-Id: <1509562746-6313-1-git-send-email-Yazen.Ghannam@amd.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM5PR10CA0021.namprd10.prod.outlook.com (10.172.33.31) To BN6PR1201MB0132.namprd12.prod.outlook.com (10.174.114.145) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: da797976-f2b4-411b-38d7-08d5215aa4d9 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(2017052603238);SRVR:BN6PR1201MB0132; X-Microsoft-Exchange-Diagnostics: 1;BN6PR1201MB0132;3:UI+LyIKHgmUgBr/KufbBhfywN0GawLGzQ/3fv2vX4b7xYVv/kmSrdNRtxL1QUWu/VUmmze+ZaGkvfMLr30G3TiTkgEqYC5ALzF6hMCDSraaVuK1B9MteBf1v0YHS+2Db6QMPJEoPJAbwrHRQ8lP8B6wXYNN+7np5c/1Tbtza9xiDLQe8gfyLMRKn8tE7byDrJjUme4jNihVLtHlBzt5DoWCyecZUpWCP3pPSmdwT7dig/kh68YjpcX5esKgiBnl2;25:Gh13GF6TA0wFqk937TbRyzoQxg7V5m07GamSvSbUSxx8U+nqlUX0hTA2lNDjpMJizQyRb+ci3Knys0zsUHBMfEoHGXmJ97SzHpAAZTkY/2LnosKpkAZAopdsx0wytUAlkKUVMxCos3YwQrO2/WE55cxVNWqUjr6sojG44i9PFe0QRKs7eBjkuFyjWk27IOHSFNS1kqs0rJE1IzrfPwBXdSAvX157TqYKiFr3ySZ3VV0YL4l1INsuJjv55fS3ckaeBAzLw3voGh52cLqKa8Np8uroMQNWedJZHx5JCuCkAQJHNgOzqlopUxjxVoU6RWEM3BaW1tJmFxJGr2FFx0n40A==;31:2XAhONQBhnbHRODLY2PKOHmVQPh+GLVUGHhOvjl4SRxGqXbEmFyZorySjylayQNz/1FQBg2iTCRtSu21jcpuiUE+ftnH6hqkUqex78hO5rtDKZBt4Rfcew7BJMz0VSPTXc0/IRY1JmppFoJGjdLNllpZknnzB3pgq5SqkYq4E2JX/scgSGEiCEhm8WrqTuXRBJqaWhFFtw4TmAuxU4N2GMa358K4oDycw3gfXlB+Xi4= X-MS-TrafficTypeDiagnostic: BN6PR1201MB0132: X-Microsoft-Exchange-Diagnostics: 1;BN6PR1201MB0132;20:VdeBPjNvtCWFQXhWxIT9uykUNBE3gMt3znZsrDn35cBZV1DcOtK54fkPzmjaP68FmaCwy3Wv0hPS9NicEVeyuNM91FcJOBiWBkku45z9QbymhkiZUigiYg+g30eCr7cn3vepuCz0jkpQB8WE/ZuTvRkfQKhp0IN6Zg31/SG9d5cFvIWwMs7FRcDjj0MKeYEgfi7+ml4NXA+ffejlQQrntf2UyHmzix9uoe0hThbCgZCQlB/OjuY2k26O2ofjkA/8oUcay8dQbcB4FGwTBjAa6XtuclKoPmPWOrh4KrZK/c3544MYsJciK9uBrNnU3VTmY0kIx9S6g7YSOzdaEah3ldcD50TccxUFhbHiEQ7YBJydbPEvtE1B9fb5WZZrv1Rlce2TDCrLPg/FeL8nGtZ9sn0Ws2uIfvH+TU4NxPBfdFLMvC+HjSZnuevT3QsdczBY8raxafITKBY5YxNOHvta+KVF6isk5y/Og9aNziCohWeqv9gmwIYHWQ2HGb8TB5Tb;4:HlafB2rgK5ePrWraSByrTFxFinm1qC78SYnhB24igXNGUZaEWpRUM0Y3p/vkfuw5JY6VXacRpIN9FV3gFM6JdmVddxr/u5nZc18Zj7yR9U8P8kAys/qOd598QGkR+8JlFmyWvoqK4TJaxt8KhkKfkw7Gbxws1CSVsgxdpNYdH9k8BqFOnvTujIzz2LmCy0YKw6ccVq6EswQziscvolqikQHN8dcQwD4fnkzxd6QFlmFX2Zsi01U4NBow2ReiLFGRuhTly/lh0QU5veiN5A/HDGp4VPluGRoIwpf9M8OspHp21qqRBVeYW3vSAlW/e4PX7KEVMIrDY7dfsHXXuijnWgY4wX+G3C2Bdu+NzdWVnjAlyImwWlEso8iYr+eHYZJM X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110)(42068640409301); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3231020)(3002001)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(6055026)(6041248)(20161123560025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BN6PR1201MB0132;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BN6PR1201MB0132; X-Forefront-PRVS: 0478C23FE0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(376002)(346002)(39860400002)(189002)(199003)(81166006)(6486002)(8936002)(50226002)(105586002)(47776003)(2351001)(106356001)(2361001)(6666003)(2906002)(5660300001)(97736004)(189998001)(6916009)(316002)(53416004)(54906003)(66066001)(101416001)(4326008)(305945005)(68736007)(3846002)(6306002)(6116002)(7736002)(478600001)(16586007)(50986999)(72206003)(966005)(81156014)(25786009)(36756003)(48376002)(8676002)(16526018)(86362001)(5003940100001)(53936002)(50466002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR1201MB0132;H:yaz-diesel.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN6PR1201MB0132;23:Oj7NW/ihdsrEPuz672waygE2EgNw7YPqMVz3MGo?= =?us-ascii?Q?4d5u7NLzXNP719Sbs61wPRQnEgzO4Px5JMIBzUCfv3SsbByMkJb7obbPPpC3?= =?us-ascii?Q?uQ25yRMmoK5z4mYUuu6HAexbYzAkLQ6hE6zXBg3lOAUAhRpVg3dY/B0ZwQVS?= =?us-ascii?Q?fb3YISPRlTPXfGiwh98NcG+GJqe7pC/zfFy8dxBMKUVEvM7u/os/fS5RzU2v?= =?us-ascii?Q?+jRyXhHIdEb4OxnO7yMahClSiNpwraeRYueO2TU3ODXggp9xM3eSHHaD7sw4?= =?us-ascii?Q?FerCvfPJl1O1vTYiD4jiMJ9PE4mGZjJ4ILEPOTt/eZYtGugi/pmpQcxCVDOi?= =?us-ascii?Q?N9OJqh4K34qNERllzJpCJU+PMNgKPecem4IiApGDwg1Tjmr9wHInZtNzeXER?= =?us-ascii?Q?NV82WkrygrrLghwreraAiWZk1X+tgKGChHjqhdkRnojpnX1kTPjA1AByeoOK?= =?us-ascii?Q?zYP5fquHd9B1xhnhzP9q/4xLWCVfyRp3zBlG79h9QjoEVrvxP57mMl3eWJq6?= =?us-ascii?Q?Svt0DHJ+yin0Tg34ru+fKB73i0cLZSPyPsEH0qWkbfgxSJlK5zLbn22uL4N4?= =?us-ascii?Q?qIIo2b243Y0hznXDqSsLFP4qn0O+eBYz0ze6TqrGL/FrQ8cn0jqdO7cci2Tl?= =?us-ascii?Q?hH8lJUbErfrAVSDzaqWvPsy+PlMsSyffi1tPZOAMV6wtZ5SKgTJ7R5sKqlp4?= =?us-ascii?Q?6iNKapTabh1I2NjqG25yW867YImLQ+d8g5utAPmLKj8Cl+wcxtNmFaKrB1EA?= =?us-ascii?Q?6c70tQZNyZcOySK/JF0/soS/LDAhoQXwFLoEjsdO63EBnuQ3rup0MOu0wwI0?= =?us-ascii?Q?orFY1WGhal9JVwKNCdLs9sYVb2XEBEKkSJ9zMEwix7Rj7B/xwPZGRvYWLcEf?= =?us-ascii?Q?fj9O+rh9B/2aoUw+Jz4URvYN85muGfBYe3mclUQGvwDylJaIoTkeE+7zZ9dR?= =?us-ascii?Q?8xKgKFJA6vQgdg6W0Px+vOjYYFxEFrAqur6U1N+bZ6g1il5D8Qx8v/S0/dpy?= =?us-ascii?Q?oLjZJkcuEzwEpAlqp33iGzF04XXEcc1i14Q2F9dZGI+oROL2SkHx1ZZxQpWg?= =?us-ascii?Q?paGaikjQObAyaFAxRnx4g4QROAOTlvXkHeK8Aey14wxxNDRVKbBx7ZxS8d8X?= =?us-ascii?Q?MpnGdSbeSsu4=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR1201MB0132;6:1xscineHVnKKWFnq7DQdniE+csgeA/dGognM2ucwi3G6QMc/0SDRt8F+hpr8BsPbrq6QFsXGsO0eWPuD2YcyTRsJdXaDad8PVk4yt3job41d3Iuopi7kaEiyDcDisTsJrUDhShUbFC6diKO+THC6LZ63EQEOfDdkRHnresKFVg4V8At/EGuK6eA4u4UnNvTYzDJOfWLSYUwyzarQhCqWO5uwMkVZXl80M449H7s90ablJxgyMnRkrkhn6aDInIhlJXyqt6Cl79iWBxtbg/5CJr336l4xNNRhX2n2LS7HofIDFiabinw9Lnm4Cf2FyqiVxI0+WtJeHm2/238p+q8GVG5ncS6ZtH+uzGrMOAYtNsQ=;5:wGOQkCau/HC/UehbWYTuzAKm+8eyHvljlxiYTaVkZcdF3u1d5LQmOux+IXfn1DcGqQ6Bga3jS99IaWNVh0cSgett2mz8JuAo03sF9Jn0awQ4PQrrbjUxrfpvj1aBcr5ZtxoPwVscV3fadfZRr4g36hCsckW/IsmMD3q5mxCE/us=;24:cnoWrjzwdvysIAjopeSa361GrASXc11dkqCBu5wWZspTXyqPm8UV9Wk3N9ay5NkOq4TkcaD19q82ABQ8JYFrnPG1melZXATMbjzPkpFsafw=;7:9D9qoUOL94k7V3p5z+IUnUUttFDEnXteOgAfWcAfkuAFWrBcyktEwoCiHfiSPydmBhMSDbUzJTlE2vO5+PpJnJtLdmttuK8IaQwF/S5jC1VvzJBz2JU013IHDvRQy4yGXSLmpborGIDNmLrcYqjeoi/ipfD+AqdISnKwVLfEBc2s5/48TQP85RW6k49jcidfMLQil6e/ONswJOmEUk2UWrAi7/bEEi5GMJ4S/MKbSExUuPM1pGD/ctmiMNEXkpMY SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR1201MB0132;20:y3fcC3trXL5JC4+x0I+mGoE+tUPfaN0L/AcIMsxjK/zrBSN6I0AmmJn0Vme0+5i5n9Qd6tEeGW9AydLs9zuRGwBb/3eqNOfXn/vV+2zP2up2/pur4A+ZRfeIqxwWBYOyTcwYVFSdh7TTeN8my3SQFw4KhR4D8LqFevYPSeFwx8AHhSkV0YkdUuboJQxTFlYF1yKZ4PHSQaEfsWBszyytW1JXb1SI23N1H5lZFDp350/CnC222/66BhRya2sLo9K5 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2017 18:59:13.4265 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: da797976-f2b4-411b-38d7-08d5215aa4d9 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1201MB0132 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yazen Ghannam The AMD severity grading function was introduced in v4.1 and has remained logically unchanged with the exception of a separate SMCA severity grading function for SMCA systems. The current logic can possibly give MCE_AR_SEVERITY for uncorrectable errors in kernel context. The system may then get stuck in a loop as memory_failure() will try to handle the bad kernel memory and find it busy. Return MCE_PANIC_SEVERITY for all UC errors IN_KERNEL context on AMD systems. After: b2f9d678e28c ("x86/mce: Check for faults tagged in EXTABLE_CLASS_FAULT exception table entries") was accepted in v4.6, this issue was masked because of the tail-end attempt at kernel mode recovery in the #MC handler. However, uncorrectable errors IN_KERNEL context should always be considered unrecoverable and cause a panic. Fixes: bf80bbd7dcf5 (x86/mce: Add an AMD severities-grading function) Signed-off-by: Yazen Ghannam [ This needs to be reworked to apply to v4.1 and v4.4 stable branches.] Cc: # 4.9.x --- Link: https://lkml.kernel.org/r/1505830031-9630-1-git-send-email-Yazen.Ghannam@amd.com v1->v2: * Update commit message. arch/x86/kernel/cpu/mcheck/mce-severity.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/cpu/mcheck/mce-severity.c b/arch/x86/kernel/cpu/mcheck/mce-severity.c index 2773c8547f69..f5518706baa6 100644 --- a/arch/x86/kernel/cpu/mcheck/mce-severity.c +++ b/arch/x86/kernel/cpu/mcheck/mce-severity.c @@ -245,6 +245,9 @@ static int mce_severity_amd(struct mce *m, int tolerant, char **msg, bool is_exc if (m->status & MCI_STATUS_UC) { + if (ctx == IN_KERNEL) + return MCE_PANIC_SEVERITY; + /* * On older systems where overflow_recov flag is not present, we * should simply panic if an error overflow occurs. If @@ -255,10 +258,6 @@ static int mce_severity_amd(struct mce *m, int tolerant, char **msg, bool is_exc if (mce_flags.smca) return mce_severity_amd_smca(m, ctx); - /* software can try to contain */ - if (!(m->mcgstatus & MCG_STATUS_RIPV) && (ctx == IN_KERNEL)) - return MCE_PANIC_SEVERITY; - /* kill current process */ return MCE_AR_SEVERITY; } else { -- 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2] x86/MCE/AMD: Always give PANIC severity for UC errors IN_KERNEL context From: Yazen Ghannam Message-Id: <1509562746-6313-1-git-send-email-Yazen.Ghannam@amd.com> Date: Wed, 1 Nov 2017 13:59:06 -0500 To: linux-edac@vger.kernel.org Cc: Borislav Petkov , Tony Luck , x86@kernel.org, linux-kernel@vger.kernel.org List-ID: RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPgoKVGhlIEFNRCBzZXZl cml0eSBncmFkaW5nIGZ1bmN0aW9uIHdhcyBpbnRyb2R1Y2VkIGluIHY0LjEgYW5kIGhhcyByZW1h aW5lZApsb2dpY2FsbHkgdW5jaGFuZ2VkIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBhIHNlcGFyYXRl IFNNQ0Egc2V2ZXJpdHkgZ3JhZGluZwpmdW5jdGlvbiBmb3IgU01DQSBzeXN0ZW1zLiBUaGUgY3Vy cmVudCBsb2dpYyBjYW4gcG9zc2libHkgZ2l2ZQpNQ0VfQVJfU0VWRVJJVFkgZm9yIHVuY29ycmVj dGFibGUgZXJyb3JzIGluIGtlcm5lbCBjb250ZXh0LiBUaGUgc3lzdGVtIG1heQp0aGVuIGdldCBz dHVjayBpbiBhIGxvb3AgYXMgbWVtb3J5X2ZhaWx1cmUoKSB3aWxsIHRyeSB0byBoYW5kbGUgdGhl IGJhZAprZXJuZWwgbWVtb3J5IGFuZCBmaW5kIGl0IGJ1c3kuCgpSZXR1cm4gTUNFX1BBTklDX1NF VkVSSVRZIGZvciBhbGwgVUMgZXJyb3JzIElOX0tFUk5FTCBjb250ZXh0IG9uIEFNRApzeXN0ZW1z LgoKQWZ0ZXI6CgogIGIyZjlkNjc4ZTI4YyAoIng4Ni9tY2U6IENoZWNrIGZvciBmYXVsdHMgdGFn Z2VkIGluIEVYVEFCTEVfQ0xBU1NfRkFVTFQgZXhjZXB0aW9uIHRhYmxlIGVudHJpZXMiKQoKd2Fz IGFjY2VwdGVkIGluIHY0LjYsIHRoaXMgaXNzdWUgd2FzIG1hc2tlZCBiZWNhdXNlIG9mIHRoZSB0 YWlsLWVuZCBhdHRlbXB0CmF0IGtlcm5lbCBtb2RlIHJlY292ZXJ5IGluIHRoZSAjTUMgaGFuZGxl ci4KCkhvd2V2ZXIsIHVuY29ycmVjdGFibGUgZXJyb3JzIElOX0tFUk5FTCBjb250ZXh0IHNob3Vs ZCBhbHdheXMgYmUgY29uc2lkZXJlZAp1bnJlY292ZXJhYmxlIGFuZCBjYXVzZSBhIHBhbmljLgoK Rml4ZXM6IGJmODBiYmQ3ZGNmNSAoeDg2L21jZTogQWRkIGFuIEFNRCBzZXZlcml0aWVzLWdyYWRp bmcgZnVuY3Rpb24pCgpTaWduZWQtb2ZmLWJ5OiBZYXplbiBHaGFubmFtIDx5YXplbi5naGFubmFt QGFtZC5jb20+ClsgVGhpcyBuZWVkcyB0byBiZSByZXdvcmtlZCB0byBhcHBseSB0byB2NC4xIGFu ZCB2NC40IHN0YWJsZSBicmFuY2hlcy5dCkNjOiA8c3RhYmxlQHZnZXIua2VybmVsLm9yZz4gIyA0 LjkueAotLS0KTGluazoKaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci8xNTA1ODMwMDMxLTk2MzAt MS1naXQtc2VuZC1lbWFpbC1ZYXplbi5HaGFubmFtQGFtZC5jb20KCnYxLT52MjoKKiBVcGRhdGUg Y29tbWl0IG1lc3NhZ2UuCgogYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlLXNldmVyaXR5 LmMgfCA3ICsrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlLXNldmVy aXR5LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9tY2Utc2V2ZXJpdHkuYwppbmRleCAy NzczYzg1NDdmNjkuLmY1NTE4NzA2YmFhNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2Nw dS9tY2hlY2svbWNlLXNldmVyaXR5LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2sv bWNlLXNldmVyaXR5LmMKQEAgLTI0NSw2ICsyNDUsOSBAQCBzdGF0aWMgaW50IG1jZV9zZXZlcml0 eV9hbWQoc3RydWN0IG1jZSAqbSwgaW50IHRvbGVyYW50LCBjaGFyICoqbXNnLCBib29sIGlzX2V4 YwogCiAJaWYgKG0tPnN0YXR1cyAmIE1DSV9TVEFUVVNfVUMpIHsKIAorCQlpZiAoY3R4ID09IElO X0tFUk5FTCkKKwkJCXJldHVybiBNQ0VfUEFOSUNfU0VWRVJJVFk7CisKIAkJLyoKIAkJICogT24g b2xkZXIgc3lzdGVtcyB3aGVyZSBvdmVyZmxvd19yZWNvdiBmbGFnIGlzIG5vdCBwcmVzZW50LCB3 ZQogCQkgKiBzaG91bGQgc2ltcGx5IHBhbmljIGlmIGFuIGVycm9yIG92ZXJmbG93IG9jY3Vycy4g SWYKQEAgLTI1NSwxMCArMjU4LDYgQEAgc3RhdGljIGludCBtY2Vfc2V2ZXJpdHlfYW1kKHN0cnVj dCBtY2UgKm0sIGludCB0b2xlcmFudCwgY2hhciAqKm1zZywgYm9vbCBpc19leGMKIAkJCWlmICht Y2VfZmxhZ3Muc21jYSkKIAkJCQlyZXR1cm4gbWNlX3NldmVyaXR5X2FtZF9zbWNhKG0sIGN0eCk7 CiAKLQkJCS8qIHNvZnR3YXJlIGNhbiB0cnkgdG8gY29udGFpbiAqLwotCQkJaWYgKCEobS0+bWNn c3RhdHVzICYgTUNHX1NUQVRVU19SSVBWKSAmJiAoY3R4ID09IElOX0tFUk5FTCkpCi0JCQkJcmV0 dXJuIE1DRV9QQU5JQ19TRVZFUklUWTsKLQogCQkJLyoga2lsbCBjdXJyZW50IHByb2Nlc3MgKi8K IAkJCXJldHVybiBNQ0VfQVJfU0VWRVJJVFk7CiAJCX0gZWxzZSB7Cg==