From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 69AC6C433E0 for ; Mon, 10 Aug 2020 23:57:53 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CD8DE206DC for ; Mon, 10 Aug 2020 23:57:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="AuXE2eiX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CD8DE206DC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mellanox.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Received: from bilbo.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 4BQXvz0jsTzDqT8 for ; Tue, 11 Aug 2020 09:57:51 +1000 (AEST) Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=mellanox.com (client-ip=40.107.20.52; helo=eur05-db8-obe.outbound.protection.outlook.com; envelope-from=aneela@mellanox.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.a=rsa-sha256 header.s=selector1 header.b=AuXE2eiX; dkim-atps=neutral Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2052.outbound.protection.outlook.com [40.107.20.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4BQS9c2mBzzDqSk for ; Tue, 11 Aug 2020 06:24:19 +1000 (AEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K+NtyBUfCUPUF9zFkL206ucrhuj8ujFze0oCOjpl07+oKwVMsUcGNN5t5hH6mBNiOZiGOSbrme9WsdDZC/oRyBNyC0ScXutPP/48K6Iy1P5tqa9Vrkf+Mk/jYQnvYB/mC9ck20MZBPgK/MNlfOQUTt48I68myeGYt8OxyR+tjdpV5Q/3Qc0V68z78G0StJyinH8opA3HyyTuq08prhbscu5yi7qQVaJ5NWQ8KboV4NO3MMyChmvckslq32AkX1F5wAvrEZ6uxBNvZMhq0G+0KHSa/Lg016ZfDH9bLEd9ZITMqScVksfkUkf1y14JGs0NP6jsW4nsTEGXXHvSMi/Thw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uGj3GWsjA/OIQ+UTaguFOoOjp7COiPfspDYmYsNpFk0=; b=aYmCjUB/kagUQ/t1TdoQibZ3h7guMXm3NiHMiQqC7cxBX9e431dfqTd6EZuLfaUHz0kYrH+OdfOLPEiC+pUH/2oKGuI41YZpbmxpgb0TK8bPc+HZ62OmafPpLxQeCQkMJQ9wXdUF3zRNdt87rXa0n9n+lSdXjL+jeEa2XD3FYp491uJxP2cMmwaiq85DyVwW5dn+mnigQPbJyOpS87XBBn2bw+Ep97RmVddB/FfLJmwtOe/46L/Zot1J4357OioocwzCldp5J3/X0Z98GFCB2RfLAGjtyZI7S4v6/MzgQOuDPon/E1N/ePCMKzXBFwe/fiGI7j3N69V8Cdnvb9Td4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uGj3GWsjA/OIQ+UTaguFOoOjp7COiPfspDYmYsNpFk0=; b=AuXE2eiXBylzXFH5xqcQPoxxA4E3enpuvqPiKJENKXHWjB52GoarwKDXqThjU3af8rQX6bltGs6avrZBuAmx6ccXUOw4R/C/gowvFeOIWhs+wn+fcYjBjKcpvDpdmFkY/cQSUIobrjxqTM5+2czFLQ2y9SL5nGyc1NQBPgUbL98= Received: from AM0PR05MB4642.eurprd05.prod.outlook.com (2603:10a6:208:b3::13) by AM4PR05MB3236.eurprd05.prod.outlook.com (2603:10a6:205:4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3261.19; Mon, 10 Aug 2020 20:24:11 +0000 Received: from AM0PR05MB4642.eurprd05.prod.outlook.com ([fe80::ec36:c594:71c9:65c3]) by AM0PR05MB4642.eurprd05.prod.outlook.com ([fe80::ec36:c594:71c9:65c3%7]) with mapi id 15.20.3261.023; Mon, 10 Aug 2020 20:24:11 +0000 From: Aneela Devarasetty To: Oliver O'Halloran , Max Gurtovoy Subject: RE: [PATCH 2/2 v2] powerpc/powernv: Enable and setup PCI P2P Thread-Topic: [PATCH 2/2 v2] powerpc/powernv: Enable and setup PCI P2P Thread-Index: AQHWHvFw5k9T4NasAk+KJtp6nWvbrKkmk1eAgAvXEdA= Date: Mon, 10 Aug 2020 20:24:11 +0000 Message-ID: References: <20200430131520.51211-1-maxg@mellanox.com> <20200430131520.51211-2-maxg@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [76.247.69.48] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: e9edddf3-2d15-4b53-4f33-08d83d6b57b9 x-ms-traffictypediagnostic: AM4PR05MB3236: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr,ExtFwd x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5zO4jrPCs/95qZ+w+amXDEGNbF2R2Lgy8oDTgYwAPLayRTwkRBLjycyDepV2AuaXD9YON2+18X2YNwommFz78guZJv5ZKccbE8aTRyUEsU7cJVaWdrBCO0ygfgvzwrANeDlUrE+mfeQv0f31C6aE96/NPLftelpUCjCWP/fWGvESnUtZaWHUnKhZU0ZIl969UsPRVoJA897ZkSry1N/xZwcEFqOUMxnuRAawF7cHqv7FQbOGW4qP8NEa5NCf4HMRm7mtmvqpEWH+wqaJw1krb+lBQxoMOHGXwTjc0u5DLRhm9F1c4g4sXbDWWGpcf3wwhGxEOV7U/dApxN9xF68zGA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4642.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(136003)(376002)(39860400002)(396003)(366004)(346002)(66476007)(64756008)(66556008)(66446008)(66946007)(76116006)(52536014)(83380400001)(2906002)(5660300002)(71200400001)(478600001)(54906003)(110136005)(6636002)(186003)(86362001)(33656002)(26005)(7696005)(8936002)(9686003)(316002)(8676002)(53546011)(6506007)(4326008)(55016002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: aCwbfFw2zLfEJ/+Bp0huXl0ZCaGrLY0fUD7wQHl5oM9ENMewSkBJabFyOrH4q3ZVQJwN3zdkiDPWcFLYJ+lIjAqNlkwX5l5ex3HdQlnQO+iI9fylptd/l7keW/HgSDpPFxeQSkWq/yNyoWg7o/DMPX8ih8/HW1WIYDxmVgsXTF/A0dEfKXL8KVfiaOVoF2wDBCq4koaQZEE8CkUJV2KrP9GYW44Q8tywK4nXQW1HMW3P728tRU9HzbmiP/uAWPgtknJ70BrPueDumx9FvpI0Ibh35fQqBUp+fAeP0BTyuJwtq2+4QWska7K3YS7Ri+YLyEKTdTs5ihBwTq5bHvSgsGsTSp/k9ZtBAg7l/dolcy5oTWCv5xB81zVKbwtTmMw8EZYJSkmA16hLATSh+cdr+SHXMODsMBgGP/L0ZkVoce2JvhJtgqa7gP3AhH5XSMXDTuR7w/g1EclBAJsSux6rc4QabV0wIR9ayq9rMoYT59//Jdnl10RJ+dSNwHoP8D0q5cRnLU5dkOYTerHkTT650jLmDvz2zdGpaDhwDf3J2tUmPGVB2DZIwALpQ0xi6DAcq3c46FtZ1HUebZ3+TGxEHtHhZB8YJ99R3Uh9r0mxa7pWs9P3F20QBgDFhuMBxsojmxKOfRcz47uSFRlJtYf5dA== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4642.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e9edddf3-2d15-4b53-4f33-08d83d6b57b9 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Aug 2020 20:24:11.4772 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OczkuamIoZjfgnws3wCBTu0LAHRoxac3Tj1s3tc0bibRZ0mPCWZnRdNpnRPYy2UUa+zkLauqpjw9FQFJQPjCHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3236 X-Mailman-Approved-At: Tue, 11 Aug 2020 09:50:47 +1000 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Zhi-wei Dai , Vladimir Koushnir , Carol Soto , linux-pci , Shlomi Nimrodi , Israel Rukshin , Frederic Barrat , Idan Werpoler , linuxppc-dev , Christoph Hellwig Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" KyBEYXZpZCBmcm9tIElCTS4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IE9s aXZlciBPJ0hhbGxvcmFuIDxvb2hhbGxAZ21haWwuY29tPiANClNlbnQ6IE1vbmRheSwgQXVndXN0 IDMsIDIwMjAgMjozNSBBTQ0KVG86IE1heCBHdXJ0b3ZveSA8bWF4Z0BtZWxsYW5veC5jb20+DQpD YzogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+OyBsaW51eC1wY2kgPGxpbnV4LXBjaUB2 Z2VyLmtlcm5lbC5vcmc+OyBsaW51eHBwYy1kZXYgPGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMu b3JnPjsgSXNyYWVsIFJ1a3NoaW4gPGlzcmFlbHJAbWVsbGFub3guY29tPjsgSWRhbiBXZXJwb2xl ciA8SWRhbndAbWVsbGFub3guY29tPjsgVmxhZGltaXIgS291c2huaXIgPHZsYWRpbWlya0BtZWxs YW5veC5jb20+OyBTaGxvbWkgTmltcm9kaSA8c2hsb21pbkBtZWxsYW5veC5jb20+OyBGcmVkZXJp YyBCYXJyYXQgPGZiYXJyYXRAbGludXguaWJtLmNvbT47IENhcm9sIFNvdG8gPGNsc290b0B1cy5p Ym0uY29tPjsgQW5lZWxhIERldmFyYXNldHR5IDxhbmVlbGFAbWVsbGFub3guY29tPg0KU3ViamVj dDogUmU6IFtQQVRDSCAyLzIgdjJdIHBvd2VycGMvcG93ZXJudjogRW5hYmxlIGFuZCBzZXR1cCBQ Q0kgUDJQDQoNCk9uIFRodSwgQXByIDMwLCAyMDIwIGF0IDExOjE1IFBNIE1heCBHdXJ0b3ZveSA8 bWF4Z0BtZWxsYW5veC5jb20+IHdyb3RlOg0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3Bs YXRmb3Jtcy9wb3dlcm52L3BjaS1pb2RhLmMgDQo+IGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9w b3dlcm52L3BjaS1pb2RhLmMNCj4gaW5kZXggNTdkM2E2YS4uOWVjYzU3NiAxMDA2NDQNCj4gLS0t IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BjaS1pb2RhLmMNCj4gKysrIGIvYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BjaS1pb2RhLmMNCj4gQEAgLTM3MDYsMTggKzM3 MDYsMjA4IEBAIHN0YXRpYyB2b2lkIHBudl9wY2lfaW9kYV9kbWFfYnVzX3NldHVwKHN0cnVjdCBw Y2lfYnVzICpidXMpDQo+ICAgICAgICAgfQ0KPiAgfQ0KPg0KPiArI2lmZGVmIENPTkZJR19QQ0lf UDJQRE1BDQo+ICtzdGF0aWMgREVGSU5FX01VVEVYKHAycF9tdXRleCk7DQo+ICsNCj4gK3N0YXRp YyBib29sIHBudl9wY2lfY29udHJvbGxlcl9vd25zX2FkZHIoc3RydWN0IHBjaV9jb250cm9sbGVy ICpob3NlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNf YWRkcl90IGFkZHIsIHNpemVfdCANCj4gK3NpemUpIHsNCj4gKyAgICAgICBpbnQgaTsNCj4gKw0K PiArICAgICAgIC8qDQo+ICsgICAgICAgICogSXQgc2VlbXMgc2FmZSB0byBhc3N1bWUgdGhlIGZ1 bGwgcmFuZ2UgaXMgdW5kZXIgdGhlIHNhbWUgUEhCLCBzbyB3ZQ0KPiArICAgICAgICAqIGNhbiBp Z25vcmUgdGhlIHNpemUuDQo+ICsgICAgICAgICovDQo+ICsgICAgICAgZm9yIChpID0gMDsgaSA8 IEFSUkFZX1NJWkUoaG9zZS0+bWVtX3Jlc291cmNlcyk7IGkrKykgew0KPiArICAgICAgICAgICAg ICAgc3RydWN0IHJlc291cmNlICpyZXMgPSAmaG9zZS0+bWVtX3Jlc291cmNlc1tpXTsNCj4gKw0K PiArICAgICAgICAgICAgICAgaWYgKHJlcy0+ZmxhZ3MgJiYgYWRkciA+PSByZXMtPnN0YXJ0ICYm IGFkZHIgPCByZXMtPmVuZCkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7 DQo+ICsgICAgICAgfQ0KPiArICAgICAgIHJldHVybiBmYWxzZTsNCj4gK30NCj4gKw0KPiArLyoN Cj4gKyAqIGZpbmQgdGhlIHBoYiBvd25pbmcgYSBtbWlvIGFkZHJlc3MgaWYgbm90IG93bmVkIGxv Y2FsbHkgICovIHN0YXRpYyANCj4gK3N0cnVjdCBwbnZfcGhiICpwbnZfcGNpX2ZpbmRfb3duaW5n X3BoYihzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwaHlzX2FkZHJfdCBhZGRyLCANCj4gK3NpemVfdCBzaXplKSB7 DQo+ICsgICAgICAgc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlOw0KPiArDQo+ICsgICAgICAg LyogZmFzdCBwYXRoICovDQo+ICsgICAgICAgaWYgKHBudl9wY2lfY29udHJvbGxlcl9vd25zX2Fk ZHIocGRldi0+YnVzLT5zeXNkYXRhLCBhZGRyLCBzaXplKSkNCj4gKyAgICAgICAgICAgICAgIHJl dHVybiBOVUxMOw0KDQpEbyB3ZSBhY3R1YWxseSBuZWVkIHRoaXMgZmFzdCBwYXRoPyBJdCdzIGdv aW5nIHRvIGJlIHNsb3cgZWl0aGVyIHdheS4NCkFsc28gaWYgYSBkZXZpY2UgaXMgZG9pbmcgcDJw IHRvIGFub3RoZXIgZGV2aWNlIHVuZGVyIHRoZSBzYW1lIFBIQiB0aGVuIGl0IHNob3VsZCBub3Qg YmUgaGFwcGVuaW5nIHZpYSB0aGUgcm9vdCBjb21wbGV4LiBJcyB0aGlzIGEgY2FzZSB5b3UndmUg dGVzdGVkPw0KDQo+ICsgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShob3NlLCAmaG9zZV9saXN0 LCBsaXN0X25vZGUpIHsNCj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBwbnZfcGhiICpwaGIgPSBo b3NlLT5wcml2YXRlX2RhdGE7DQo+ICsNCj4gKyAgICAgICAgICAgICAgIGlmIChwaGItPnR5cGUg IT0gUE5WX1BIQl9OUFVfTlZMSU5LICYmDQo+ICsgICAgICAgICAgICAgICAgICAgcGhiLT50eXBl ICE9IFBOVl9QSEJfTlBVX09DQVBJKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChw bnZfcGNpX2NvbnRyb2xsZXJfb3duc19hZGRyKGhvc2UsIGFkZHIsIHNpemUpKQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwaGI7DQo+ICsgICAgICAgICAgICAgICB9 DQo+ICsgICAgICAgfQ0KPiArICAgICAgIHJldHVybiBOVUxMOw0KPiArfQ0KPiArDQo+ICtzdGF0 aWMgdTY0IHBudl9wY2lfZG1hX2Rpcl90b19vcGFsX3AycChlbnVtIGRtYV9kYXRhX2RpcmVjdGlv biBkaXIpIHsNCj4gKyAgICAgICBpZiAoZGlyID09IERNQV9UT19ERVZJQ0UpDQo+ICsgICAgICAg ICAgICAgICByZXR1cm4gT1BBTF9QQ0lfUDJQX1NUT1JFOw0KPiArICAgICAgIGVsc2UgaWYgKGRp ciA9PSBETUFfRlJPTV9ERVZJQ0UpDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gT1BBTF9QQ0lf UDJQX0xPQUQ7DQo+ICsgICAgICAgZWxzZSBpZiAoZGlyID09IERNQV9CSURJUkVDVElPTkFMKQ0K PiArICAgICAgICAgICAgICAgcmV0dXJuIE9QQUxfUENJX1AyUF9MT0FEIHwgT1BBTF9QQ0lfUDJQ X1NUT1JFOw0KPiArICAgICAgIGVsc2UNCj4gKyAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiAr fQ0KPiArDQo+ICtzdGF0aWMgaW50IHBudl9wY2lfaW9kYV9lbmFibGVfcDJwKHN0cnVjdCBwY2lf ZGV2ICppbml0aWF0b3IsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHBudl9waGIgKnBoYl90YXJnZXQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKSB7DQo+ICsgICAgICAgc3RydWN0IHBj aV9jb250cm9sbGVyICpob3NlOw0KPiArICAgICAgIHN0cnVjdCBwbnZfcGhiICpwaGJfaW5pdDsN Cj4gKyAgICAgICBzdHJ1Y3QgcG52X2lvZGFfcGUgKnBlX2luaXQ7DQo+ICsgICAgICAgdTY0IGRl c2M7DQo+ICsgICAgICAgaW50IHJjOw0KPiArDQo+ICsgICAgICAgaWYgKCFvcGFsX2NoZWNrX3Rv a2VuKE9QQUxfUENJX1NFVF9QMlApKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTlhJTzsN Cj4gKw0KDQo+ICsgICAgICAgaG9zZSA9IHBjaV9idXNfdG9faG9zdChpbml0aWF0b3ItPmJ1cyk7 DQo+ICsgICAgICAgcGhiX2luaXQgPSBob3NlLT5wcml2YXRlX2RhdGE7DQoNCllvdSBjYW4gdXNl IHRoZSBwY2lfYnVzX3RvX3BudmhiKCkgaGVscGVyDQoNCj4gKw0KPiArICAgICAgIHBlX2luaXQg PSBwbnZfaW9kYV9nZXRfcGUoaW5pdGlhdG9yKTsNCj4gKyAgICAgICBpZiAoIXBlX2luaXQpDQo+ ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsNCj4gKw0KPiArICAgICAgIGlmICghcGVf aW5pdC0+dGNlX2J5cGFzc19lbmFibGVkKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7DQo+ICsNCj4gKyAgICAgICAvKg0KPiArICAgICAgICAqIENvbmZpZ3VyaW5nIHRoZSBpbml0 aWF0b3IncyBQSEIgcmVxdWlyZXMgdG8gYWRqdXN0IGl0cyBUVkUjMQ0KPiArICAgICAgICAqIHNl dHRpbmcuIFNpbmNlIHRoZSBzYW1lIGRldmljZSBjYW4gYmUgYW4gaW5pdGlhdG9yIHNldmVyYWwg dGltZXMgZm9yDQo+ICsgICAgICAgICogZGlmZmVyZW50IHRhcmdldCBkZXZpY2VzLCB3ZSBuZWVk IHRvIGtlZXAgYSByZWZlcmVuY2UgY291bnQgdG8ga25vdw0KPiArICAgICAgICAqIHdoZW4gd2Ug Y2FuIHJlc3RvcmUgdGhlIGRlZmF1bHQgYnlwYXNzIHNldHRpbmcgb24gaXRzIFRWRSMxIHdoZW4N Cj4gKyAgICAgICAgKiBkaXNhYmxpbmcuIE9wYWwgaXMgbm90IHRyYWNraW5nIFBFIHN0YXRlcywg c28gd2UgYWRkIGEgcmVmZXJlbmNlDQo+ICsgICAgICAgICogY291bnQgb24gdGhlIFBFIGluIGxp bnV4Lg0KPiArICAgICAgICAqDQo+ICsgICAgICAgICogRm9yIHRoZSB0YXJnZXQsIHRoZSBjb25m aWd1cmF0aW9uIGlzIHBlciBQSEIsIHNvIHdlIGtlZXAgYQ0KPiArICAgICAgICAqIHRhcmdldCBy ZWZlcmVuY2UgY291bnQgb24gdGhlIFBIQi4NCj4gKyAgICAgICAgKi8NCg0KVGhpcyBpcmtzIG1l IGEgYml0IGJlY2F1c2UgY29uZmlndXJpbmcgdGhlIERNQSBhZGRyZXNzIGxpbWl0cyBmb3IgdGhl IFRWRSBpcyB0aGUga2VybmVsJ3Mgam9iLiBXaGF0IHdlIHJlYWxseSBzaG91bGQgYmUgZG9pbmcg aXMgdXNpbmcNCm9wYWxfcGNpX21hcF9wZV9kbWFfd2luZG93X3JlYWwoKSB0byBzZXQgdGhlIGJ5 cGFzcy1tb2RlIGFkZHJlc3MgbGltaXQgZm9yIHRoZSBUVkUgdG8gc29tZXRoaW5nIGxhcmdlIGVu b3VnaCB0byBoaXQgdGhlIE1NSU8gcmFuZ2VzIHJhdGhlciB0aGFuIGhhdmluZyBzZXRfcDJwIGRv IGl0IGFzIGEgc2lkZSBlZmZlY3QuIFVuZm9ydHVuYXRlbHksIGZvciBzb21lIHJlYXNvbiBza2li b290IGRvZXNuJ3QgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGVuYWJsaW5nIDU2Yml0IGFkZHJlc3Np bmcgdXNpbmcgb3BhbF9wY2lfbWFwX3BlX2RtYV93aW5kb3dfcmVhbCgpIGFuZCB3ZSBkbyBuZWVk IHRvIHN1cHBvcnQgb2xkZXIga2VybmVsJ3Mgd2hpY2ggdXNlZCB0aGlzIHN0dWZmIHNvIEkgZ3Vl c3Mgd2UncmUgc3R1Y2sgd2l0aCBpdCBmb3Igbm93LiBJdCdkIGJlIG5pY2UgaWYgd2UgY291bGQg Zml4IHRoaXMgaW4gdGhlIGxvbmdlciB0ZXJtIHRob3VnaC4uLg0KDQo+ICsgICAgICAgbXV0ZXhf bG9jaygmcDJwX211dGV4KTsNCj4gKw0KPiArICAgICAgIGRlc2MgPSBPUEFMX1BDSV9QMlBfRU5B QkxFIHwgcG52X3BjaV9kbWFfZGlyX3RvX29wYWxfcDJwKGRpcik7DQo+ICsgICAgICAgLyogYWx3 YXlzIGdvIHRvIG9wYWwgdG8gdmFsaWRhdGUgdGhlIGNvbmZpZ3VyYXRpb24gKi8NCj4gKyAgICAg ICByYyA9IG9wYWxfcGNpX3NldF9wMnAocGhiX2luaXQtPm9wYWxfaWQsIHBoYl90YXJnZXQtPm9w YWxfaWQsIGRlc2MsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlX2luaXQtPnBl X251bWJlcik7DQo+ICsgICAgICAgaWYgKHJjICE9IE9QQUxfU1VDQ0VTUykgew0KPiArICAgICAg ICAgICAgICAgcmMgPSAtRUlPOw0KPiArICAgICAgICAgICAgICAgZ290byBvdXQ7DQo+ICsgICAg ICAgfQ0KPiArDQo+ICsgICAgICAgcGVfaW5pdC0+cDJwX2luaXRpYXRvcl9jb3VudCsrOw0KPiAr ICAgICAgIHBoYl90YXJnZXQtPnAycF90YXJnZXRfY291bnQrKzsNCj4gKw0KPiArICAgICAgIHJj ID0gMDsNCj4gK291dDoNCj4gKyAgICAgICBtdXRleF91bmxvY2soJnAycF9tdXRleCk7DQo+ICsg ICAgICAgcmV0dXJuIHJjOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IHBudl9wY2lfZG1hX21h cF9yZXNvdXJjZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGh5c19hZGRyX3QgcGh5c19hZGRyLCBzaXplX3Qgc2l6ZSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24g ZGlyKSB7DQo+ICsgICAgICAgc3RydWN0IHBudl9waGIgKnRhcmdldF9waGI7DQo+ICsNCj4gKyAg ICAgICB0YXJnZXRfcGhiID0gcG52X3BjaV9maW5kX293bmluZ19waGIocGRldiwgcGh5c19hZGRy LCBzaXplKTsNCj4gKyAgICAgICBpZiAoIXRhcmdldF9waGIpDQo+ICsgICAgICAgICAgICAgICBy ZXR1cm4gMDsNCj4gKw0KPiArICAgICAgIHJldHVybiBwbnZfcGNpX2lvZGFfZW5hYmxlX3AycChw ZGV2LCB0YXJnZXRfcGhiLCBkaXIpOyB9DQo+ICsNCj4gK3N0YXRpYyBpbnQgcG52X3BjaV9pb2Rh X2Rpc2FibGVfcDJwKHN0cnVjdCBwY2lfZGV2ICppbml0aWF0b3IsDQo+ICsgICAgICAgICAgICAg ICBzdHJ1Y3QgcG52X3BoYiAqcGhiX3RhcmdldCkgew0KPiArICAgICAgIHN0cnVjdCBwY2lfY29u dHJvbGxlciAqaG9zZTsNCj4gKyAgICAgICBzdHJ1Y3QgcG52X3BoYiAqcGhiX2luaXQ7DQo+ICsg ICAgICAgc3RydWN0IHBudl9pb2RhX3BlICpwZV9pbml0Ow0KPiArICAgICAgIGludCByYzsNCj4g Kw0KPiArICAgICAgIGlmICghb3BhbF9jaGVja190b2tlbihPUEFMX1BDSV9TRVRfUDJQKSkNCj4g KyAgICAgICAgICAgICAgIHJldHVybiAtRU5YSU87DQoNClRoaXMgc2hvdWxkIHByb2JhYmx5IGhh dmUgYSBXQVJOX09OKCkgc2luY2Ugd2UgY2FuJ3QgaGl0IHRoaXMgcGF0aCB1bmxlc3MgdGhlIGlu aXRpYWwgbWFwIHN1Y2NlZWRzLg0KDQo+ICsgICAgICAgaG9zZSA9IHBjaV9idXNfdG9faG9zdChp bml0aWF0b3ItPmJ1cyk7DQo+ICsgICAgICAgcGhiX2luaXQgPSBob3NlLT5wcml2YXRlX2RhdGE7 DQoNCnBjaV9idXNfdG9fcG52aGIoKQ0KDQo+ICsgICAgICAgcGVfaW5pdCA9IHBudl9pb2RhX2dl dF9wZShpbml0aWF0b3IpOw0KPiArICAgICAgIGlmICghcGVfaW5pdCkNCj4gKyAgICAgICAgICAg ICAgIHJldHVybiAtRU5PREVWOw0KPiArDQo+ICsgICAgICAgbXV0ZXhfbG9jaygmcDJwX211dGV4 KTsNCj4gKw0KPiArICAgICAgIGlmICghcGVfaW5pdC0+cDJwX2luaXRpYXRvcl9jb3VudCB8fCAh cGhiX3RhcmdldC0+cDJwX3RhcmdldF9jb3VudCkgew0KPiArICAgICAgICAgICAgICAgcmMgPSAt RUlOVkFMOw0KPiArICAgICAgICAgICAgICAgZ290byBvdXQ7DQo+ICsgICAgICAgfQ0KPiArDQo+ ICsgICAgICAgaWYgKC0tcGVfaW5pdC0+cDJwX2luaXRpYXRvcl9jb3VudCA9PSAwKQ0KPiArICAg ICAgICAgICAgICAgcG52X3BjaV9pb2RhMl9zZXRfYnlwYXNzKHBlX2luaXQsIHRydWUpOw0KPiAr DQo+ICsgICAgICAgaWYgKC0tcGhiX3RhcmdldC0+cDJwX3RhcmdldF9jb3VudCA9PSAwKSB7DQo+ ICsgICAgICAgICAgICAgICByYyA9IG9wYWxfcGNpX3NldF9wMnAocGhiX2luaXQtPm9wYWxfaWQs IHBoYl90YXJnZXQtPm9wYWxfaWQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMCwgcGVfaW5pdC0+cGVfbnVtYmVyKTsNCj4gKyAgICAgICAgICAgICAgIGlmIChyYyAh PSBPUEFMX1NVQ0NFU1MpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmMgPSAtRUlPOw0K PiArICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsNCj4gKyAgICAgICAgICAgICAgIH0N Cj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAgICByYyA9IDA7DQo+ICtvdXQ6DQo+ICsgICAgICAg bXV0ZXhfdW5sb2NrKCZwMnBfbXV0ZXgpOw0KPiArICAgICAgIHJldHVybiByYzsNCj4gK30NCj4g Kw0KPiArc3RhdGljIHZvaWQgcG52X3BjaV9kbWFfdW5tYXBfcmVzb3VyY2Uoc3RydWN0IHBjaV9k ZXYgKnBkZXYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRtYV9h ZGRyX3QgYWRkciwgc2l6ZV90IHNpemUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikgew0KPiArICAgICAgIHN0cnVj dCBwbnZfcGhiICp0YXJnZXRfcGhiOw0KPiArICAgICAgIGludCByYzsNCj4gKw0KPiArICAgICAg IHRhcmdldF9waGIgPSBwbnZfcGNpX2ZpbmRfb3duaW5nX3BoYihwZGV2LCBhZGRyLCBzaXplKTsN Cj4gKyAgICAgICBpZiAoIXRhcmdldF9waGIpDQo+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ ICsNCj4gKyAgICAgICByYyA9IHBudl9wY2lfaW9kYV9kaXNhYmxlX3AycChwZGV2LCB0YXJnZXRf cGhiKTsNCj4gKyAgICAgICBpZiAocmMpDQo+ICsgICAgICAgICAgICAgICBkZXZfZXJyKCZwZGV2 LT5kZXYsICJGYWlsZWQgdG8gdW5kbyBQQ0kgcGVlci10by1wZWVyIHNldHVwIGZvciBhZGRyZXNz ICVsbHg6ICVkXG4iLA0KPiArICAgICAgICAgICAgICAgICAgICAgICBhZGRyLCByYyk7DQoNClVz ZSBwY2lfZXJyKCkgb3IgcGVfZXJyKCkuDQo=