Received: by 10.223.176.5 with SMTP id f5csp391872wra; Thu, 1 Feb 2018 22:58:18 -0800 (PST) X-Google-Smtp-Source: AH8x227lSWez429myyaKDc2xx2dVI8AHOQMoUkzxa3DCHCX+pea+pr7ncAYff0+FbpqIMV/EBLL+ X-Received: by 2002:a17:902:241:: with SMTP id 59-v6mr34302879plc.280.1517554697961; Thu, 01 Feb 2018 22:58:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517554697; cv=none; d=google.com; s=arc-20160816; b=dnXNxf0kq9L+hfNWJrJ3d7AOaq4I5+42SYYbhUpPEp1J/igRmQWpemTYsIdzdpg5OE dUcNEzzWSbqJWhHejKWl4gYWVnNtii+VISOl0PNEzvT7DPZ2D8SzU+4lj+DcJQ/7+qU/ QXjDodPzaPsC33wANzwgAHeeuDyltWtI3VIueZDia9+kvPHxU/053pMCl4S44qNhBG88 H7jKhUYZzZWiAJDL5OQ/gC8rWegfMsGLLtJeeAUCfKC4m5PQKgF0yybrz/EQ9efUTPIZ NORQ6iWtQ+JMvb59x80Gm/CFtHC3161J6KFhlmGx1kePg2YA9s6sv6P3bPiLvUzqNLPb PtDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=ZVRBECBBdXsT8fNTCu0rxYbr0fCXcHlxIHnG1tuVUeg=; b=aXlpm+FSXIN7qJZGPSVL2KEnwBl6DbCxcOEkLpOH2QE9hzzsATUZSvZRZzReXlXQhC O1YbV6Te6N+txpFAB0B/DPrlA74GUojkN5aFelbM7PELMOemy5I7oVVjMQOGZaLS++z1 SEZoKWmMthuhTDkJyLBBJ/s3grIhc9DQSBW8S4nFzSFKD9ZRyYi78cX/Hn4M4Ng4uKO7 KW6zvi0tY485fRAVLJRpwI1LmaPvG1Tc5hWVaU1R26XirYMOhEZCAgQ6bzNCpzFupwse lM0t558/GSgv6K0bdZ/4KJIWPA+aiQc7gf1X2iIOZGuX2tnOV8TACWntluPv8N1Jpgxf u9Fg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=iRNfJzfZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j11si978600pgs.614.2018.02.01.22.58.03; Thu, 01 Feb 2018 22:58:17 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=iRNfJzfZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751546AbeBBG5q (ORCPT + 99 others); Fri, 2 Feb 2018 01:57:46 -0500 Received: from mail-bn3nam01on0052.outbound.protection.outlook.com ([104.47.33.52]:11133 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751043AbeBBG5k (ORCPT ); Fri, 2 Feb 2018 01:57:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ZVRBECBBdXsT8fNTCu0rxYbr0fCXcHlxIHnG1tuVUeg=; b=iRNfJzfZxPB8+O/1KFNfQtiEq253TjUSTOKKgAI/rzuiKoLmT6GhX8iqY/YhzWzH+JVJrze6zZc8c6rXGZykH5IkKEz1ka1T/czxRtMfXzPpH3v1YGSz2Wv+kAqZssyVg51KJInyiiDKVy9wkZLvKwjUfp5SVHkneqUCz6vH5Jo= Received: from MWHPR1201MB0127.namprd12.prod.outlook.com (10.174.98.142) by MWHPR1201MB0126.namprd12.prod.outlook.com (10.174.98.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Fri, 2 Feb 2018 06:57:38 +0000 Received: from MWHPR1201MB0127.namprd12.prod.outlook.com ([10.174.98.142]) by MWHPR1201MB0127.namprd12.prod.outlook.com ([10.174.98.142]) with mapi id 15.20.0444.021; Fri, 2 Feb 2018 06:57:37 +0000 From: "He, Roger" To: "Koenig, Christian" , "Zhou, David(ChunMing)" , "dri-devel@lists.freedesktop.org" CC: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH] mm/swap: add function get_total_swap_pages to expose total_swap_pages Thread-Topic: [PATCH] mm/swap: add function get_total_swap_pages to expose total_swap_pages Thread-Index: AQHTmNtYoBUw/9kRPkGbswRNbnupYaONlMmAgAANf7CAAAKaAIABYvbAgAApVyCAAYFAEA== Date: Fri, 2 Feb 2018 06:57:37 +0000 Message-ID: References: <1517214582-30880-1-git-send-email-Hongbo.He@amd.com> <9ecba5f4-3d4c-0179-bf03-f89c436cff6b@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Hongbo.He@amd.com; x-originating-ip: [116.228.147.241] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MWHPR1201MB0126;7:N5Pe4mbGxwGynKCteirh7zA2mt4z25oapLeYo9mxdaz6zTbXpP2Ug9MrMMjWQrqPuQPDk2Va6paV+AQWd+pr6LthY2wtYJQGQbFmDst3Y/Jcnr87ILopG2eZwP9HsUXn8mZq3bxKs3vV5lqY0N8KnGxaw2VzZWPR/oH4iFYdA8PHs56sU6tyzroB7kqRqemw2fB56y16k9lliP8RvEy73+J1ZWzc5VSxSVUt2xmjCIY01kzm5xTXdiaZsL0JMqRM;20:YgFHP4TnJIbyF7SKvsYZ+r84RQSePRn6YNTK4O1OiLkozLLBuvwCehZsO8W4xaAenOgWZpiHIQj3IepBnhSvtxndJN2CDOiirO0yYg9T/VWWZ/k2t2O7bdRdTpqXGr/HuTikS69PotkZMd1xSqP/tJ9M6DdOWzkPJ4BWgFJh5bw31A28dmU80OXmUhR3zJjjAo8sxOJjdl0ycyM4bRptvrePUyYScFrqxJoVxX0Hn++LljSEY3XqvyayJZLNtTu8 x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR; x-forefront-antispam-report: SFV:SKI;SCL:-1;SFV:NSPM;SFS:(10009020)(39860400002)(396003)(376002)(366004)(346002)(39380400002)(13464003)(189003)(199004)(14454004)(5660300001)(3660700001)(478600001)(2501003)(86362001)(966005)(72206003)(7696005)(6436002)(6506007)(53546011)(99286004)(93886005)(66066001)(3280700002)(97736004)(105586002)(68736007)(8676002)(3846002)(6116002)(53936002)(316002)(54906003)(2906002)(81166006)(25786009)(8936002)(81156014)(110136005)(9686003)(6246003)(55016002)(6306002)(102836004)(26005)(4326008)(77096007)(74316002)(2900100001)(7736002)(305945005)(76176011)(59450400001)(229853002)(33656002)(106356001);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR1201MB0126;H:MWHPR1201MB0127.namprd12.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 020c1e0b-e3e6-430d-d08f-08d56a0a3e64 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020);SRVR:MWHPR1201MB0126; x-ms-traffictypediagnostic: MWHPR1201MB0126: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(9452136761055)(767451399110)(217544274631240); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040501)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231101)(2400082)(944501161)(93006095)(93001095)(6055026)(6041288)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123564045)(6072148)(201708071742011);SRVR:MWHPR1201MB0126;BCL:0;PCL:0;RULEID:;SRVR:MWHPR1201MB0126; x-forefront-prvs: 05715BE7FD received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: FcAl/XGnNhJfblGnd7N7TQH2v4u4ZeDFZqQB4VzhEYfUeals+/hR1mMdtiCZcmv+eiJP/Hfda2yIVS5XgGjC0A== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 020c1e0b-e3e6-430d-d08f-08d56a0a3e64 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2018 06:57:37.0711 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1201MB0126 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org CVVzZSB0aGUgbGltaXQgYXMgdG90YWwgcmFtKjEvMiBzZWVtcyB3b3JrIHZlcnkgd2VsbC4gDQoJ Tm8gT09NIGFsdGhvdWdoIHN3YXAgZGlzayByZWFjaGVzIGZ1bGwgYXQgcGVhayBmb3IgcGlnbGl0 IHRlc3QuDQoNCkJ1dCBmb3IgdGhpcyBhcHByb2FjaCwgRGF2aWQgbm90aWNlZCB0aGF0IGhhcyBh biBvYnZpb3VzIGRlZmVjdC4gDQpGb3IgZXhhbXBsZSwgIGlmIHRoZSBwbGF0Zm9ybSBoYXMgMzJH IHN5c3RlbSBtZW1vcnksIDhHIHN3YXAgZGlzay4NCjEvMiAqIHJhbSA9IDE2RyB3aGljaCBpcyBi aWdnZXIgdGhhbiBzd2FwIGRpc2ssIHNvIG5vIHN3YXAgZm9yIFRUTSBpcyBhbGxvd2VkIGF0IGFs bC4NCkZvciBub3cgd2Ugd29yayBvdXQgYW4gaW1wcm92ZWQgdmVyc2lvbiBiYXNlZCBvbiBnZXRf bnJfc3dhcF9wYWdlcygpLg0KR29pbmcgdG8gc2VuZCBvdXQgbGF0ZXIuDQoNClRoYW5rcw0KUm9n ZXIoSG9uZ2JvLkhlKQ0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEhlLCBSb2dl ciANClNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSAwMSwgMjAxOCA0OjAzIFBNDQpUbzogS29lbmln LCBDaHJpc3RpYW4gPENocmlzdGlhbi5Lb2VuaWdAYW1kLmNvbT47IFpob3UsIERhdmlkKENodW5N aW5nKSA8RGF2aWQxLlpob3VAYW1kLmNvbT47IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcNCkNjOiBsaW51eC1tbUBrdmFjay5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7 ICdIZSwgUm9nZXInIDxIb25nYm8uSGVAYW1kLmNvbT4NClN1YmplY3Q6IFJFOiBbUEFUQ0hdIG1t L3N3YXA6IGFkZCBmdW5jdGlvbiBnZXRfdG90YWxfc3dhcF9wYWdlcyB0byBleHBvc2UgdG90YWxf c3dhcF9wYWdlcw0KDQpKdXN0IG5vdywgSSB0cmllZCB3aXRoIGZpeGVkIGxpbWl0LiAgQnV0IG5v dCB3b3JrIGFsd2F5cy4NCkZvciBleGFtcGxlOiBzZXQgdGhlIGxpbWl0IGFzIDRHQiBvbiBteSBw bGF0Zm9ybSB3aXRoIDhHQiBzeXN0ZW0gbWVtb3J5LCBpdCBjYW4gcGFzcy4NCkJ1dCB3aGVuIHJ1 biB3aXRoIHBsYXRmb3JtIHdpdGggMTZHQiBzeXN0ZW0gbWVtb3J5LCBpdCBmYWlsZWQgc2luY2Ug T09NLg0KDQpBbmQgSSBndWVzcyBpdCBhbHNvIGRlcGVuZHMgb24gYXBwJ3MgYmVoYXZpb3IuDQpJ IG1lYW4gc29tZSBhcHBzICBtYWtlIE9TIHRvIHVzZSBtb3JlIHN3YXAgc3BhY2UgYXMgd2VsbC4N Cg0KVGhhbmtzDQpSb2dlcihIb25nYm8uSGUpDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K RnJvbTogZHJpLWRldmVsIFttYWlsdG86ZHJpLWRldmVsLWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnXSBPbiBCZWhhbGYgT2YgSGUsIFJvZ2VyDQpTZW50OiBUaHVyc2RheSwgRmVicnVhcnkg MDEsIDIwMTggMTo0OCBQTQ0KVG86IEtvZW5pZywgQ2hyaXN0aWFuIDxDaHJpc3RpYW4uS29lbmln QGFtZC5jb20+OyBaaG91LCBEYXZpZChDaHVuTWluZykgPERhdmlkMS5aaG91QGFtZC5jb20+OyBk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQpDYzogbGludXgtbW1Aa3ZhY2sub3JnOyBs aW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQpTdWJqZWN0OiBSRTogW1BBVENIXSBtbS9zd2Fw OiBhZGQgZnVuY3Rpb24gZ2V0X3RvdGFsX3N3YXBfcGFnZXMgdG8gZXhwb3NlIHRvdGFsX3N3YXBf cGFnZXMNCg0KCUJ1dCB3aGF0IHdlIGNvdWxkIGRvIGlzIHRvIHJlbHkgb24gYSBmaXhlZCBsaW1p dCBsaWtlIHRoZSBJbnRlbCBkcml2ZXIgZG9lcyBhbmQgSSBzdWdnZXN0ZWQgYmVmb3JlLg0KCUUu Zy4gZG9uJ3QgY29weSBhbnl0aGluZyBpbnRvIGEgc2htZW1maWxlIHdoZW4gdGhlcmUgaXMgb25s eSB4IE1CIG9mIHN3YXAgc3BhY2UgbGVmdC4NCg0KSGVyZSBJIHRoaW5rIHdlIGNhbiBkbyBpdCBm dXJ0aGVyLCBsZXQgdGhlIGxpbWl0IHZhbHVlIHNjYWxpbmcgd2l0aCB0b3RhbCBzeXN0ZW0gbWVt b3J5Lg0KRm9yIGV4YW1wbGU6IHRvdGFsIHN5c3RlbSBtZW1vcnkgKiAxLzIuIA0KSWYgdGhhdCBp dCB3aWxsIG1hdGNoIHRoZSBwbGF0Zm9ybSBjb25maWd1cmF0aW9uIGJldHRlci4gDQoNCglSb2dl ciBjYW4geW91IHRlc3QgdGhhdCBhcHByb2FjaCBvbmNlIG1vcmUgd2l0aCB5b3VyIGZpeCBmb3Ig dGhlIE9PTSBpc3N1ZXMgaW4gdGhlIHBhZ2UgZmF1bHQgaGFuZGxlcj8NCg0KU3VyZS4gVXNlIHRo ZSBsaW1pdCBhcyB0b3RhbCByYW0qMS8yIHNlZW1zIHdvcmsgdmVyeSB3ZWxsLiANCk5vIE9PTSBh bHRob3VnaCBzd2FwIGRpc2sgcmVhY2hlcyBmdWxsIGF0IHBlYWsgZm9yIHBpZ2xpdCB0ZXN0Lg0K SSBzcGVjdWxhdGUgdGhpcyBjYXNlIGhhcHBlbnMgYnV0IG5vIE9PTSBiZWNhdXNlOg0KDQphLiBy dW4gYSB3aGlsZSwgc3dhcCBkaXNrIGJlIHVzZWQgY2xvc2UgdG8gMS8yKiB0b3RhbCBzaXplIGFu ZCBidXQgbm90IG92ZXIgMS8yICogdG90YWwuDQpiLiBhbGwgc3Vic2VxdWVudCBzd2FwcGVkIHBh Z2VzIHN0YXkgaW4gc3lzdGVtIG1lbW9yeSB1bnRpbCBubyBzcGFjZSB0aGVyZS4NCiAgICAgVGhl biB0aGUgc3dhcHBlZCBwYWdlcyBpbiBzaG1lbSBiZSBmbHVzaGVkIGludG8gc3dhcCBkaXNrLiBB bmQgcHJvYmFibHkgT1MgYWxzbyBuZWVkIHNvbWUgc3dhcCBzcGFjZS4NCiAgICAgRm9yIHRoaXMg Y2FzZSwgaXQgaXMgZWFzeSB0byBnZXQgZnVsbCBmb3Igc3dhcCBkaXNrLg0KYy4gYnV0IGJlY2F1 c2Ugbm93IGZyZWUgc3dhcCBzaXplIDwgMS8yICogdG90YWwsIHNvIG5vIHN3YXAgb3V0IGhhcHBl biAgYWZ0ZXIgdGhhdC4gDQogICAgQW5kIGF0IGxlYXN0IDEvNCogc3lzdGVtIG1lbW9yeSB3aWxs IGxlZnQgYmVjYXVzZSBiZWxvdyBjaGVjayBpbiB0dG1fbWVtX2dsb2JhbF9yZXNlcnZlIHdpbGwg ZW5zdXJlIHRoYXQuDQoJaWYgKHpvbmUtPnVzZWRfbWVtID4gbGltaXQpDQoJCQlnb3RvIG91dF91 bmxvY2s7DQogICAgDQpUaGFua3MNClJvZ2VyKEhvbmdiby5IZSkNCi0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQpGcm9tOiBLb2VuaWcsIENocmlzdGlhbg0KU2VudDogV2VkbmVzZGF5LCBKYW51 YXJ5IDMxLCAyMDE4IDQ6MTMgUE0NClRvOiBIZSwgUm9nZXIgPEhvbmdiby5IZUBhbWQuY29tPjsg WmhvdSwgRGF2aWQoQ2h1bk1pbmcpIDxEYXZpZDEuWmhvdUBhbWQuY29tPjsgZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZw0KQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZzsgbGludXgta2VybmVs QHZnZXIua2VybmVsLm9yZw0KU3ViamVjdDogUmU6IFtQQVRDSF0gbW0vc3dhcDogYWRkIGZ1bmN0 aW9uIGdldF90b3RhbF9zd2FwX3BhZ2VzIHRvIGV4cG9zZSB0b3RhbF9zd2FwX3BhZ2VzDQoNClll YWgsIGluZGVlZC4gQnV0IHdoYXQgd2UgY291bGQgZG8gaXMgdG8gcmVseSBvbiBhIGZpeGVkIGxp bWl0IGxpa2UgdGhlIEludGVsIGRyaXZlciBkb2VzIGFuZCBJIHN1Z2dlc3RlZCBiZWZvcmUuDQoN CkUuZy4gZG9uJ3QgY29weSBhbnl0aGluZyBpbnRvIGEgc2htZW1maWxlIHdoZW4gdGhlcmUgaXMg b25seSB4IE1CIG9mIHN3YXAgc3BhY2UgbGVmdC4NCg0KUm9nZXIgY2FuIHlvdSB0ZXN0IHRoYXQg YXBwcm9hY2ggb25jZSBtb3JlIHdpdGggeW91ciBmaXggZm9yIHRoZSBPT00gaXNzdWVzIGluIHRo ZSBwYWdlIGZhdWx0IGhhbmRsZXI/DQoNClRoYW5rcywNCkNocmlzdGlhbi4NCg0KQW0gMzEuMDEu MjAxOCB1bSAwOTowOCBzY2hyaWViIEhlLCBSb2dlcjoNCj4gCUkgdGhpbmsgdGhpcyBwYXRjaCBp c24ndCBuZWVkIGF0IGFsbC4gWW91IGNhbiBkaXJlY3RseSByZWFkIHRvdGFsX3N3YXBfcGFnZXMg dmFyaWFibGUgaW4gVFRNLg0KPg0KPiBCZWNhdXNlIHRoZSB2YXJpYWJsZSBpcyBub3QgZXhwb3J0 ZWQgYnkgRVhQT1JUX1NZTUJPTF9HUEwuIFNvIGRpcmVjdCB1c2luZyB3aWxsIHJlc3VsdCBpbjoN Cj4gIldBUk5JTkc6ICJ0b3RhbF9zd2FwX3BhZ2VzIiBbZHJpdmVycy9ncHUvZHJtL3R0bS90dG0u a29dIHVuZGVmaW5lZCEiLg0KPg0KPiBUaGFua3MNCj4gUm9nZXIoSG9uZ2JvLkhlKQ0KPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkcmktZGV2ZWwgW21haWx0bzpkcmktZGV2 ZWwtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmddIE9uIA0KPiBCZWhhbGYgT2YgQ2h1bm1p bmcgWmhvdQ0KPiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMzEsIDIwMTggMzoxNSBQTQ0KPiBU bzogSGUsIFJvZ2VyIDxIb25nYm8uSGVAYW1kLmNvbT47IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcNCj4gQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZzsgbGludXgta2VybmVsQHZnZXIua2Vy bmVsLm9yZzsgS29lbmlnLCANCj4gQ2hyaXN0aWFuIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+ DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIG1tL3N3YXA6IGFkZCBmdW5jdGlvbiBnZXRfdG90YWxf c3dhcF9wYWdlcyB0byANCj4gZXhwb3NlIHRvdGFsX3N3YXBfcGFnZXMNCj4NCj4gSGkgUm9nZXIs DQo+DQo+IEkgdGhpbmsgdGhpcyBwYXRjaCBpc24ndCBuZWVkIGF0IGFsbC4gWW91IGNhbiBkaXJl Y3RseSByZWFkIHRvdGFsX3N3YXBfcGFnZXMgdmFyaWFibGUgaW4gVFRNLiBTZWUgdGhlIGNvbW1l bnQ6DQo+DQo+IC8qIHByb3RlY3RlZCB3aXRoIHN3YXBfbG9jay4gcmVhZGluZyBpbiB2bV9zd2Fw X2Z1bGwoKSBkb2Vzbid0IG5lZWQgDQo+IGxvY2sgKi8gbG9uZyB0b3RhbF9zd2FwX3BhZ2VzOw0K Pg0KPiB0aGVyZSBhcmUgbWFueSBwbGFjZXMgdXNpbmcgaXQgZGlyZWN0bHksIHlvdSBqdXN0IGNv dWxkbid0IGNoYW5nZSBpdHMgdmFsdWUuIFJlYWRpbmcgaXQgZG9lc24ndCBuZWVkIGxvY2suDQo+ DQo+DQo+IFJlZ2FyZHMsDQo+DQo+IERhdmlkIFpob3UNCj4NCj4NCj4gT24gMjAxOOW5tDAx5pyI Mjnml6UgMTY6MjksIFJvZ2VyIEhlIHdyb3RlOg0KPj4gdHRtIG1vZHVsZSBuZWVkcyBpdCB0byBk ZXRlcm1pbmUgaXRzIGludGVybmFsIHBhcmFtZXRlciBzZXR0aW5nLg0KPj4NCj4+IFNpZ25lZC1v ZmYtYnk6IFJvZ2VyIEhlIDxIb25nYm8uSGVAYW1kLmNvbT4NCj4+IC0tLQ0KPj4gICAgaW5jbHVk ZS9saW51eC9zd2FwLmggfCAgNiArKysrKysNCj4+ICAgIG1tL3N3YXBmaWxlLmMgICAgICAgIHwg MTUgKysrKysrKysrKysrKysrDQo+PiAgICAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMo KykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zd2FwLmggYi9pbmNsdWRlL2xp bnV4L3N3YXAuaCBpbmRleCANCj4+IGMyYjgxMjguLjcwOGQ2NmYgMTAwNjQ0DQo+PiAtLS0gYS9p bmNsdWRlL2xpbnV4L3N3YXAuaA0KPj4gKysrIGIvaW5jbHVkZS9saW51eC9zd2FwLmgNCj4+IEBA IC00ODQsNiArNDg0LDcgQEAgZXh0ZXJuIGludCB0cnlfdG9fZnJlZV9zd2FwKHN0cnVjdCBwYWdl ICopOw0KPj4gICAgc3RydWN0IGJhY2tpbmdfZGV2X2luZm87DQo+PiAgICBleHRlcm4gaW50IGlu aXRfc3dhcF9hZGRyZXNzX3NwYWNlKHVuc2lnbmVkIGludCB0eXBlLCB1bnNpZ25lZCBsb25nIG5y X3BhZ2VzKTsNCj4+ICAgIGV4dGVybiB2b2lkIGV4aXRfc3dhcF9hZGRyZXNzX3NwYWNlKHVuc2ln bmVkIGludCB0eXBlKTsNCj4+ICtleHRlcm4gbG9uZyBnZXRfdG90YWxfc3dhcF9wYWdlcyh2b2lk KTsNCj4+ICAgIA0KPj4gICAgI2Vsc2UgLyogQ09ORklHX1NXQVAgKi8NCj4+ICAgIA0KPj4gQEAg LTUxNiw2ICs1MTcsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIHNob3dfc3dhcF9jYWNoZV9pbmZv KHZvaWQpDQo+PiAgICB7DQo+PiAgICB9DQo+PiAgICANCj4+ICtsb25nIGdldF90b3RhbF9zd2Fw X3BhZ2VzKHZvaWQpDQo+PiArew0KPj4gKwlyZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiAgICAj ZGVmaW5lIGZyZWVfc3dhcF9hbmRfY2FjaGUoZSkgKHsoaXNfbWlncmF0aW9uX2VudHJ5KGUpIHx8 IGlzX2RldmljZV9wcml2YXRlX2VudHJ5KGUpKTt9KQ0KPj4gICAgI2RlZmluZSBzd2FwY2FjaGVf cHJlcGFyZShlKSAoeyhpc19taWdyYXRpb25fZW50cnkoZSkgfHwNCj4+IGlzX2RldmljZV9wcml2 YXRlX2VudHJ5KGUpKTt9KQ0KPj4gICAgDQo+PiBkaWZmIC0tZ2l0IGEvbW0vc3dhcGZpbGUuYyBi L21tL3N3YXBmaWxlLmMgaW5kZXggMzA3NGIwMi4uYTAwNjJlYg0KPj4gMTAwNjQ0DQo+PiAtLS0g YS9tbS9zd2FwZmlsZS5jDQo+PiArKysgYi9tbS9zd2FwZmlsZS5jDQo+PiBAQCAtOTgsNiArOTgs MjEgQEAgc3RhdGljIGF0b21pY190IHByb2NfcG9sbF9ldmVudCA9IEFUT01JQ19JTklUKDApOw0K Pj4gICAgDQo+PiAgICBhdG9taWNfdCBucl9yb3RhdGVfc3dhcCA9IEFUT01JQ19JTklUKDApOw0K Pj4gICAgDQo+PiArLyoNCj4+ICsgKiBleHBvc2UgdGhpcyB2YWx1ZSBmb3Igb3RoZXJzIHVzZQ0K Pj4gKyAqLw0KPj4gK2xvbmcgZ2V0X3RvdGFsX3N3YXBfcGFnZXModm9pZCkNCj4+ICt7DQo+PiAr CWxvbmcgcmV0Ow0KPj4gKw0KPj4gKwlzcGluX2xvY2soJnN3YXBfbG9jayk7DQo+PiArCXJldCA9 IHRvdGFsX3N3YXBfcGFnZXM7DQo+PiArCXNwaW5fdW5sb2NrKCZzd2FwX2xvY2spOw0KPj4gKw0K Pj4gKwlyZXR1cm4gcmV0Ow0KPj4gK30NCj4+ICtFWFBPUlRfU1lNQk9MX0dQTChnZXRfdG90YWxf c3dhcF9wYWdlcyk7DQo+PiArDQo+PiAgICBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgc3dh cF9jb3VudCh1bnNpZ25lZCBjaGFyIGVudCkNCj4+ICAgIHsNCj4+ICAgIAlyZXR1cm4gZW50ICYg flNXQVBfSEFTX0NBQ0hFOwkvKiBtYXkgaW5jbHVkZSBTV0FQX0hBU19DT05UIGZsYWcgKi8NCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gZHJpLWRl dmVsIG1haWxpbmcgbGlzdA0KPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsDQoN Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0DQpkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA0K