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=-6.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 18922C072B5 for ; Tue, 21 May 2019 21:26:31 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 D40E82173E for ; Tue, 21 May 2019 21:26:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=epam.com header.i=@epam.com header.b="Wmwz4ViI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D40E82173E Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=epam.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hTCH5-0008Q3-J8; Tue, 21 May 2019 21:26:19 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hTCH3-0008Ow-V0 for xen-devel@lists.xenproject.org; Tue, 21 May 2019 21:26:18 +0000 X-Inumbo-ID: 10926f54-7c0f-11e9-976f-9f6628437359 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (unknown [40.107.6.63]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 10926f54-7c0f-11e9-976f-9f6628437359; Tue, 21 May 2019 21:26:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8dS6+ksRdKtfN412TnNfJNX06FLrqITA4eXN1oG5HHc=; b=Wmwz4ViIVRNq4uyO41vc1rdGMzY5yCXbAjebRSgmksjQeUoeWIy9jvgvOGtyL7UUtdXvOiad6SuAlwTHb+4cXr7TzukkV+6S7bFHgDzb2Za/N9FbMlo53xCB4QNq9numPn4Z3Z1J2rDOdejMQTzTWqOjk5lpI3ACBktBUOqcyv3OC1L5jiGn8TRPdTMpRav0UVPr4n8qFOVvMfWz0gDCVj6P+n8LcVa6c2XLAQeqJCuyCH+EuY08J39CP2CUD4721nAtEYtGCr3J608RADaw6OoPR5OnTPnIAHE/uQ9j0CrD7+/GNQCMIZQwpQUAhWVY/oRzVwec2LTBbQGeCixeoQ== Received: from AM0PR03MB4148.eurprd03.prod.outlook.com (20.176.214.210) by AM0PR03MB5698.eurprd03.prod.outlook.com (20.179.254.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1900.16; Tue, 21 May 2019 21:26:14 +0000 Received: from AM0PR03MB4148.eurprd03.prod.outlook.com ([fe80::55c5:599a:1f80:208a]) by AM0PR03MB4148.eurprd03.prod.outlook.com ([fe80::55c5:599a:1f80:208a%3]) with mapi id 15.20.1900.020; Tue, 21 May 2019 21:26:14 +0000 From: Volodymyr Babchuk To: "xen-devel@lists.xenproject.org" Thread-Topic: [PATCH v5 08/10] xen/arm: optee: add support for RPC commands Thread-Index: AQHVEBvRcKxlySPIM0e/0go7KcsYXA== Date: Tue, 21 May 2019 21:26:14 +0000 Message-ID: <20190521212530.12706-9-volodymyr_babchuk@epam.com> References: <20190521212530.12706-1-volodymyr_babchuk@epam.com> In-Reply-To: <20190521212530.12706-1-volodymyr_babchuk@epam.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=Volodymyr_Babchuk@epam.com; x-originating-ip: [85.223.209.22] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2c616952-bb0e-4845-eca5-08d6de32f3ed x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:AM0PR03MB5698; x-ms-traffictypediagnostic: AM0PR03MB5698: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0044C17179 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(1496009)(376002)(136003)(366004)(346002)(396003)(39860400002)(51234002)(189003)(199004)(6512007)(6486002)(5640700003)(6436002)(68736007)(3846002)(2616005)(476003)(11346002)(6916009)(486006)(6116002)(76116006)(14444005)(256004)(64756008)(66476007)(478600001)(305945005)(66946007)(54906003)(316002)(7736002)(73956011)(71190400001)(72206003)(2501003)(66556008)(80792005)(71200400001)(66446008)(30864003)(26005)(4326008)(14454004)(25786009)(102836004)(2906002)(55236004)(8936002)(81166006)(5660300002)(99286004)(66066001)(1076003)(36756003)(86362001)(53936002)(6506007)(81156014)(446003)(2351001)(186003)(8676002)(76176011); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR03MB5698; H:AM0PR03MB4148.eurprd03.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: epam.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: YJ7U5ADbpxXXWFRUgsfZthDL48K8/lOHAU0WKn5oj04QUBcJZ8XetWfIZnSb2V1imZmGXS7UCiMpEUkitvFFjy++NV78fT8OgA438bTw+RGZMuobojukXMqMeGVmuAkR8KV9Xmow3Qg1fppJ+rHcRUuUb7ovU6+/AThDRxvSbrbNX9JoeaUaRJNqWuqPe9NVfxcETr6AJyrEsAXlT5nyT8T9UQanPfJ+8LDtxkhkfTlP/KIv0MF7tPfujyYK/dVJj2NFdBzOtVr17TNjO3iuoL3dAMq8jqYs7AMyOuDbLy16AD8s7dr5+0rWUcSot24Kl/DxvA/21IfRI6nQlRqR2UxFfbh+7i3uAM6E/+VWc7cAYL1AAjIR3WPVx9NNEuwOvU5ejZvfu95ORBPusCv+/mIt/9Z6q9VRVyX2Y+3jGpQ= MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c616952-bb0e-4845-eca5-08d6de32f3ed X-MS-Exchange-CrossTenant-originalarrivaltime: 21 May 2019 21:26:14.0401 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB5698 Subject: [Xen-devel] [PATCH v5 08/10] xen/arm: optee: add support for RPC commands X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: "tee-dev@lists.linaro.org" , Julien Grall , Stefano Stabellini , Volodymyr Babchuk Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190521212614.GHj6-x5RfQSDlxZYfiF5O2R1eCvbwAvbw9dhHreBVQo@z> T1AtVEVFIGNhbiBpc3N1ZSBtdWx0aXBsZSBSUEMgcmVxdWVzdHMuIFdlIGFyZSBpbnRlcmVzdGVk IG1vc3RseSBpbgpyZXF1ZXN0IHRoYXQgYXNrcyBOVyB0byBhbGxvY2F0ZS9mcmVlIHNoYXJlZCBt ZW1vcnkgZm9yIE9QLVRFRQpuZWVkcywgYmVjYXVzZSBtZWRpYXRvciBuZWVkcyB0byBkbyBhZGRy ZXNzIHRyYW5zbGF0aW9uIGluIHRoZSBzYW1lCndheSBhcyBpdCB3YXMgZG9uZSBmb3Igc2hhcmVk IGJ1ZmZlcnMgcmVnaXN0ZXJlZCBieSBOVy4KCk9QLVRFRSBjYW4gYXNrIE5XIHRvIGFsbG9jYXRl IG11bHRpcGxlIGJ1ZmZlcnMgZHVyaW5nIHRoZSBjYWxsLiAgV2UKa25vdyB0aGF0IGlmIE9QLVRF RSBhc2tzIGZvciBhbm90aGVyIGJ1ZmZlciwgd2UgY2FuIGZyZWUgcGdsaXN0IGZvcgp0aGUgcHJl dmlvdXMgb25lLgoKQXMgbWVkaWF0b3Igbm93IGFjY2Vzc2VzIHNoYXJlZCBjb21tYW5kIGJ1ZmZl ciwgd2UgbmVlZCB0byBzaGFkb3cKaXQgaW4gdGhlIHNhbWUgd2F5LCBhcyB3ZSBzaGFkb3cgcmVx dWVzdCBidWZmZXJzIGZvciBTVEQgY2FsbHMuCkVhcmxpZXIsIHdlIGp1c3QgcGFzc2VkIGFkZHJl c3Mgb2YgdGhpcyBidWZmZXIgdG8gT1AtVEVFLCBidXQKbm93IHdlIG5lZWQgdG8gcmVhZCBhbmQg d3JpdGUgdG8gaXQsIHNvIGl0IHNob3VsZCBiZSBzaGFkb3dlZC4KClNpZ25lZC1vZmYtYnk6IFZv bG9keW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4KLS0tCgogQWxsIHRo ZSBwYXRjaGVzIHRvIG9wdGVlLmMgc2hvdWxkIGJlIG1lcmdlZCB0b2dldGhlci4gVGhleSB3ZXJl CiBzcGxpdCB0byBlYXNlIHVwIHJldmlldy4gQnV0IHRoZXkgZGVwZW5kIGhlYXZpbHkgb24gZWFj aCBvdGhlci4KCiBDaGFuZ2VzIGZyb20gdjM6CiAtIHJldHVybiB2YWx1ZSBvZiBhY2Nlc3NfZ3Vl c3RfbWVtb3J5X2J5X2lwYSgpIG5vdyBjaGVja2VkCiAtIGNoYW5nZWQgaG93IGluZm9ybWF0aW9u IGFib3V0IHNoYXJlZCBidWZmZXIgaXMgc3RvcmVkIGluIGNhbGwKICAgY29udGV4dAogLSBkb21o ZWFwIG5vdyB1c2VkIGluc3RlYWQgb2YgeGVuaGVhcAogLSB2YXJpb3VzIGNvZGluZyBzdHlsZSBm aXhlcwoKIENoYW5nZXMgZnJvbSB2MjoKIC0gVXNlIGFjY2Vzc19ndWVzdF9tZW1vcnlfYnlfaXBh KCkgaW5zdGVhZCBvZiBkaXJlY3QgbWFwcGluZwotLS0KIHhlbi9hcmNoL2FybS90ZWUvb3B0ZWUu YyB8IDIyOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyMjIgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0vdGVlL29wdGVlLmMgYi94ZW4vYXJjaC9hcm0vdGVlL29wdGVlLmMKaW5kZXgg NGI0MWJjZGU5Zi4uMGExNjg0YmExNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3RlZS9vcHRl ZS5jCisrKyBiL3hlbi9hcmNoL2FybS90ZWUvb3B0ZWUuYwpAQCAtNDcsNiArNDcsOSBAQAogICov CiAjZGVmaW5lIFRFRUNfT1JJR0lOX0NPTU1TIDB4MDAwMDAwMDIKIAorLyogIk5vbi1zcGVjaWZp YyBjYXVzZSIgYXMgaW4gR1AgVEVFIENsaWVudCBBUEkgU3BlY2lmaWNhdGlvbiAqLworI2RlZmlu ZSBURUVDX0VSUk9SX0dFTkVSSUMgMHhGRkZGMDAwMAorCiAvKgogICogIklucHV0IHBhcmFtZXRl cnMgd2VyZSBpbnZhbGlkIiBhcyBkZXNjcmliZWQKICAqIGluIEdQIFRFRSBDbGllbnQgQVBJIFNw ZWNpZmljYXRpb24uCkBAIC04OSw2ICs5Miw3IEBAIHN0cnVjdCBvcHRlZV9zdGRfY2FsbCB7CiAg ICAgcGFkZHJfdCBndWVzdF9hcmdfaXBhOwogICAgIGludCBvcHRlZV90aHJlYWRfaWQ7CiAgICAg aW50IHJwY19vcDsKKyAgICB1aW50NjRfdCBycGNfZGF0YV9jb29raWU7CiAgICAgYm9vbCBpbl9m bGlnaHQ7CiAgICAgcmVnaXN0ZXJfdCBycGNfcGFyYW1zWzJdOwogfTsKQEAgLTk3LDYgKzEwMSw5 IEBAIHN0cnVjdCBvcHRlZV9zdGRfY2FsbCB7CiBzdHJ1Y3Qgc2htX3JwYyB7CiAgICAgc3RydWN0 IGxpc3RfaGVhZCBsaXN0OwogICAgIHN0cnVjdCBwYWdlX2luZm8gKmd1ZXN0X3BhZ2U7CisgICAg c3RydWN0IHBhZ2VfaW5mbyAqeGVuX2FyZ19wZzsKKyAgICBzdHJ1Y3Qgb3B0ZWVfbXNnX2FyZyAq eGVuX2FyZzsKKyAgICBnZm5fdCBnZm47CiAgICAgdWludDY0X3QgY29va2llOwogfTsKIApAQCAt MzUwLDEwICszNTcsMTggQEAgc3RhdGljIHN0cnVjdCBzaG1fcnBjICphbGxvY2F0ZV9hbmRfcGlu X3NobV9ycGMoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4LAogICAgIGlmICggIXNobV9ycGMgKQog ICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAorICAgIHNobV9ycGMtPnhlbl9hcmdf cGcgPSBhbGxvY19kb21oZWFwX3BhZ2UoY3VycmVudC0+ZG9tYWluLCAwKTsKKyAgICBpZiAoICFz aG1fcnBjLT54ZW5fYXJnX3BnICkKKyAgICB7CisgICAgICAgIHhmcmVlKHNobV9ycGMpOworICAg ICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKyAgICB9CisKICAgICAvKiBUaGlzIHBhZ2Ug d2lsbCBiZSBzaGFyZWQgd2l0aCBPUC1URUUsIHNvIHdlIG5lZWQgdG8gcGluIGl0LiAqLwogICAg IHNobV9ycGMtPmd1ZXN0X3BhZ2UgPSBnZXRfZG9tYWluX3JhbV9wYWdlKGdmbik7CiAgICAgaWYg KCAhc2htX3JwYy0+Z3Vlc3RfcGFnZSApCiAgICAgICAgIGdvdG8gZXJyOworICAgIHNobV9ycGMt PmdmbiA9IGdmbjsKIAogICAgIHNobV9ycGMtPmNvb2tpZSA9IGNvb2tpZTsKIApAQCAtMzc2LDYg KzM5MSw4IEBAIHN0YXRpYyBzdHJ1Y3Qgc2htX3JwYyAqYWxsb2NhdGVfYW5kX3Bpbl9zaG1fcnBj KHN0cnVjdCBvcHRlZV9kb21haW4gKmN0eCwKICAgICByZXR1cm4gc2htX3JwYzsKIAogZXJyOgor ICAgIGZyZWVfZG9taGVhcF9wYWdlKHNobV9ycGMtPnhlbl9hcmdfcGcpOworCiAgICAgaWYgKCBz aG1fcnBjLT5ndWVzdF9wYWdlICkKICAgICAgICAgcHV0X3BhZ2Uoc2htX3JwYy0+Z3Vlc3RfcGFn ZSk7CiAgICAgeGZyZWUoc2htX3JwYyk7CkBAIC00MDQsMTIgKzQyMSwzMiBAQCBzdGF0aWMgdm9p ZCBmcmVlX3NobV9ycGMoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4LCB1aW50NjRfdCBjb29raWUp CiAgICAgaWYgKCAhZm91bmQgKQogICAgICAgICByZXR1cm47CiAKKyAgICBmcmVlX2RvbWhlYXBf cGFnZShzaG1fcnBjLT54ZW5fYXJnX3BnKTsKKwogICAgIEFTU0VSVChzaG1fcnBjLT5ndWVzdF9w YWdlKTsKICAgICBwdXRfcGFnZShzaG1fcnBjLT5ndWVzdF9wYWdlKTsKIAogICAgIHhmcmVlKHNo bV9ycGMpOwogfQogCitzdGF0aWMgc3RydWN0IHNobV9ycGMgKmZpbmRfc2htX3JwYyhzdHJ1Y3Qg b3B0ZWVfZG9tYWluICpjdHgsIHVpbnQ2NF90IGNvb2tpZSkKK3sKKyAgICBzdHJ1Y3Qgc2htX3Jw YyAqc2htX3JwYzsKKworICAgIHNwaW5fbG9jaygmY3R4LT5sb2NrKTsKKyAgICBsaXN0X2Zvcl9l YWNoX2VudHJ5KCBzaG1fcnBjLCAmY3R4LT5zaG1fcnBjX2xpc3QsIGxpc3QgKQorICAgIHsKKyAg ICAgICAgaWYgKCBzaG1fcnBjLT5jb29raWUgPT0gY29va2llICkKKyAgICAgICAgeworICAgICAg ICAgICAgICAgIHNwaW5fdW5sb2NrKCZjdHgtPmxvY2spOworICAgICAgICAgICAgICAgIHJldHVy biBzaG1fcnBjOworICAgICAgICB9CisgICAgfQorICAgIHNwaW5fdW5sb2NrKCZjdHgtPmxvY2sp OworCisgICAgcmV0dXJuIE5VTEw7Cit9CisKIHN0YXRpYyBzdHJ1Y3Qgb3B0ZWVfc2htX2J1ZiAq YWxsb2NhdGVfb3B0ZWVfc2htX2J1ZihzdHJ1Y3Qgb3B0ZWVfZG9tYWluICpjdHgsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY29v a2llLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBwYWdlc19jbnQsCkBAIC05MjgsMTAgKzk2NSwxMyBAQCBzdGF0aWMgdm9p ZCBmcmVlX3NobV9idWZmZXJzKHN0cnVjdCBvcHRlZV9kb21haW4gKmN0eCwKIH0KIAogLyogSGFu ZGxlIFJQQyByZXR1cm4gZnJvbSBPUC1URUUgKi8KLXN0YXRpYyB2b2lkIGhhbmRsZV9ycGNfcmV0 dXJuKHN0cnVjdCBhcm1fc21jY2NfcmVzICpyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBvcHRlZV9zdGRfY2FsbCAqY2FsbCkKK3N0YXRpYyBpbnQgaGFuZGxlX3Jw Y19yZXR1cm4oc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgYXJtX3NtY2NjX3JlcyAqcmVzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IG9wdGVlX3N0ZF9jYWxsICpjYWxsKQogeworICAgIGludCByZXQgPSAw OworCiAgICAgY2FsbC0+cnBjX29wID0gT1BURUVfU01DX1JFVFVSTl9HRVRfUlBDX0ZVTkMocmVz LT5hMCk7CiAgICAgY2FsbC0+cnBjX3BhcmFtc1swXSA9IHJlcy0+YTE7CiAgICAgY2FsbC0+cnBj X3BhcmFtc1sxXSA9IHJlcy0+YTI7CkBAIC05NDEsNiArOTgxLDUxIEBAIHN0YXRpYyB2b2lkIGhh bmRsZV9ycGNfcmV0dXJuKHN0cnVjdCBhcm1fc21jY2NfcmVzICpyZXMsCiAgICAgc2V0X3VzZXJf cmVnKHJlZ3MsIDEsIHJlcy0+YTEpOwogICAgIHNldF91c2VyX3JlZyhyZWdzLCAyLCByZXMtPmEy KTsKICAgICBzZXRfdXNlcl9yZWcocmVncywgMywgcmVzLT5hMyk7CisKKyAgICBpZiAoIGNhbGwt PnJwY19vcCA9PSBPUFRFRV9TTUNfUlBDX0ZVTkNfQ01EICkKKyAgICB7CisgICAgICAgIC8qIENv cHkgUlBDIHJlcXVlc3QgZnJvbSBzaGFkb3dlZCBidWZmZXIgdG8gZ3Vlc3QgKi8KKyAgICAgICAg dWludDY0X3QgY29va2llID0gcmVncGFpcl90b191aW50NjQoZ2V0X3VzZXJfcmVnKHJlZ3MsIDEp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfdXNlcl9y ZWcocmVncywgMikpOworICAgICAgICBzdHJ1Y3Qgc2htX3JwYyAqc2htX3JwYyA9IGZpbmRfc2ht X3JwYyhjdHgsIGNvb2tpZSk7CisKKyAgICAgICAgaWYgKCAhc2htX3JwYyApCisgICAgICAgIHsK KyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUaGlzIGlzIGEgdmVyeSBleGNlcHRpb25h bCBzaXR1YXRpb246IE9QLVRFRSB1c2VkCisgICAgICAgICAgICAgKiBjb29raWUgZm9yIHVua25v d24gc2hhcmVkIGJ1ZmZlci4gU29tZXRoaW5nIGlzIHZlcnkKKyAgICAgICAgICAgICAqIHdyb25n IHRoZXJlLiBXZSBjYW4ndCBldmVuIHJlcG9ydCBlcnJvciBiYWNrIHRvIE9QLVRFRSwKKyAgICAg ICAgICAgICAqIGJlY2F1c2UgdGhlcmUgaXMgbm8gYnVmZmVyIHdoZXJlIHdlIGNhbiB3cml0ZSBy ZXR1cm4KKyAgICAgICAgICAgICAqIGNvZGUuIEx1Y2tpbHksIE9QLVRFRSBzZXRzIGRlZmF1bHQg ZXJyb3IgY29kZSBpbnRvIHRoYXQKKyAgICAgICAgICAgICAqIGJ1ZmZlciBiZWZvcmUgdGhlIGNh bGwsIGV4cGVjdGluZyB0aGF0IG5vcm1hbCB3b3JsZAorICAgICAgICAgICAgICogd2lsbCBvdmVy d3JpdGUgaXQgd2l0aCBhY3R1YWwgcmVzdWx0LiBTbyB3ZSBjYW4ganVzdAorICAgICAgICAgICAg ICogY29udGludWUgdGhlIGNhbGwuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGdwcmlu dGsoWEVOTE9HX0VSUiwgIkNhbid0IGZpbmQgU0hNLVJQQyB3aXRoIGNvb2tpZSAlbHhcbiIsIGNv b2tpZSk7CisKKyAgICAgICAgICAgIHJldHVybiAtRVJFU1RBUlQ7CisgICAgICAgIH0KKworICAg ICAgICBzaG1fcnBjLT54ZW5fYXJnID0gX19tYXBfZG9tYWluX3BhZ2Uoc2htX3JwYy0+eGVuX2Fy Z19wZyk7CisKKyAgICAgICAgaWYgKCBhY2Nlc3NfZ3Vlc3RfbWVtb3J5X2J5X2lwYShjdXJyZW50 LT5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICBnZm5fdG9fZ2FkZHIoc2htX3JwYy0+ Z2ZuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNobV9ycGMtPnhlbl9hcmcsCisgICAgICAg ICAgICAgICAgICAgICAgICBPUFRFRV9NU0dfR0VUX0FSR19TSVpFKHNobV9ycGMtPnhlbl9hcmct Pm51bV9wYXJhbXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkgKQorICAgICAgICB7 CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogV2Ugd2VyZSB1bmFibGUgdG8gcHJvcGFn YXRlIHJlcXVlc3QgdG8gZ3Vlc3QsIHNvIGxldCdzIHJldHVybgorICAgICAgICAgICAgICogYmFj ayB0byBPUC1URUUuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHNobV9ycGMtPnhlbl9h cmctPnJldCA9IFRFRUNfRVJST1JfR0VORVJJQzsKKyAgICAgICAgICAgIHJldCA9IC1FUkVTVEFS VDsKKyAgICAgICAgfQorCisgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKHNobV9ycGMtPnhlbl9h cmcpOworICAgIH0KKworICAgIHJldHVybiByZXQ7CiB9CiAKIC8qCkBAIC05NTMsNiArMTAzOCw5 IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9ycGNfcmV0dXJuKHN0cnVjdCBhcm1fc21jY2NfcmVzICpy ZXMsCiAgKiBJZiBjYWxsIGlzIGNvbXBsZXRlIC0gd2UgbmVlZCB0byByZXR1cm4gcmVzdWx0cyB3 aXRoIGNvcHlfc3RkX3JlcXVlc3RfYmFjaygpCiAgKiBhbmQgdGhlbiB3ZSB3aWxsIGRlc3Ryb3kg dGhlIGNhbGwgY29udGV4dCBhcyBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCiAgKgorICogSW4g c29tZSByYXJlIGNhc2VzIHdlIGNhbid0IHByb3BhZ2F0ZSBSUEMgcmVxdWVzdCBiYWNrIHRvIGd1 ZXN0LCBzbyB3ZSB3aWxsCisgKiByZXN0YXJ0IHRoZSBjYWxsLCB0ZWxsaW5nIE9QLVRFRSB0aGF0 IHJlcXVlc3QgaGFkIGZhaWxlZC4KKyAqCiAgKiBTaGFyZWQgYnVmZmVycyBzaG91bGQgYmUgaGFu ZGxlZCBpbiBhIHNwZWNpYWwgd2F5LgogICovCiBzdGF0aWMgdm9pZCBkb19jYWxsX3dpdGhfYXJn KHN0cnVjdCBvcHRlZV9kb21haW4gKmN0eCwKQEAgLTk2OCw3ICsxMDU2LDE2IEBAIHN0YXRpYyB2 b2lkIGRvX2NhbGxfd2l0aF9hcmcoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4LAogCiAgICAgaWYg KCBPUFRFRV9TTUNfUkVUVVJOX0lTX1JQQyhyZXMuYTApICkKICAgICB7Ci0gICAgICAgIGhhbmRs ZV9ycGNfcmV0dXJuKCZyZXMsIHJlZ3MsIGNhbGwpOworICAgICAgICB3aGlsZSAoIGhhbmRsZV9y cGNfcmV0dXJuKGN0eCwgJnJlcywgcmVncywgY2FsbCkgID09IC1FUkVTVEFSVCApCisgICAgICAg IHsKKyAgICAgICAgICAgIGFybV9zbWNjY19zbWMocmVzLmEwLCByZXMuYTEsIHJlcy5hMiwgcmVz LmEzLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRFRV9DTElFTlRfSUQo Y3VycmVudC0+ZG9tYWluKSwgJnJlcyk7CisKKyAgICAgICAgICAgIGlmICggIU9QVEVFX1NNQ19S RVRVUk5fSVNfUlBDKHJlcy5hMCkgKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg IH0KKwogICAgICAgICBwdXRfc3RkX2NhbGwoY3R4LCBjYWxsKTsKIAogICAgICAgICByZXR1cm47 CkBAIC0xMDk0LDYgKzExOTEsMTI0IEBAIGVycjoKICAqIHJlcXVlc3QgZnJvbSBPUC1URUUgYW5k IHdpc2hlZCB0byByZXN1bWUgdGhlIGludGVycnVwdGVkIHN0YW5kYXJkCiAgKiBjYWxsLgogICov CitzdGF0aWMgdm9pZCBoYW5kbGVfcnBjX2NtZF9hbGxvYyhzdHJ1Y3Qgb3B0ZWVfZG9tYWluICpj dHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBvcHRlZV9z dGRfY2FsbCAqY2FsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBz aG1fcnBjICpzaG1fcnBjKQoreworICAgIGlmICggc2htX3JwYy0+eGVuX2FyZy0+cmV0IHx8IHNo bV9ycGMtPnhlbl9hcmctPm51bV9wYXJhbXMgIT0gMSApCisgICAgICAgIHJldHVybjsKKworICAg IGlmICggc2htX3JwYy0+eGVuX2FyZy0+cGFyYW1zWzBdLmF0dHIgIT0gKE9QVEVFX01TR19BVFRS X1RZUEVfVE1FTV9PVVRQVVQgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9QVEVFX01TR19BVFRSX05PTkNPTlRJRykgKQorICAgIHsKKyAgICAgICAgZ2Rw cmludGsoWEVOTE9HX1dBUk5JTkcsICJJbnZhbGlkIGF0dHJzIGZvciBzaGFyZWQgbWVtIGJ1ZmZl cjogJWx4XG4iLAorICAgICAgICAgICAgICAgICBzaG1fcnBjLT54ZW5fYXJnLT5wYXJhbXNbMF0u YXR0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBGcmVlIHBnIGxpc3QgZm9y IGJ1ZmZlciAqLworICAgIGlmICggY2FsbC0+cnBjX2RhdGFfY29va2llICkKKyAgICAgICAgZnJl ZV9vcHRlZV9zaG1fYnVmX3BnX2xpc3QoY3R4LCBjYWxsLT5ycGNfZGF0YV9jb29raWUpOworCisg ICAgaWYgKCAhdHJhbnNsYXRlX25vbmNvbnRpZyhjdHgsIGNhbGwsICZzaG1fcnBjLT54ZW5fYXJn LT5wYXJhbXNbMF0pICkKKyAgICB7CisgICAgICAgIGNhbGwtPnJwY19kYXRhX2Nvb2tpZSA9Cisg ICAgICAgICAgICBzaG1fcnBjLT54ZW5fYXJnLT5wYXJhbXNbMF0udS50bWVtLnNobV9yZWY7Cisg ICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGNhbGwtPnJwY19kYXRhX2Nvb2tpZSA9IDA7 CisgICAgICAgIC8qCisgICAgICAgICAqIE9rYXksIHNvIHRoZXJlIHdhcyBwcm9ibGVtIHdpdGgg Z3Vlc3QncyBidWZmZXIgYW5kIHdlIG5lZWQKKyAgICAgICAgICogdG8gdGVsbCBhYm91dCB0aGlz IHRvIE9QLVRFRS4KKyAgICAgICAgICovCisgICAgICAgIHNobV9ycGMtPnhlbl9hcmctPnJldCA9 IFRFRUNfRVJST1JfR0VORVJJQzsKKyAgICAgICAgc2htX3JwYy0+eGVuX2FyZy0+bnVtX3BhcmFt cyA9IDA7CisgICAgICAgIC8qCisgICAgICAgICAqIFRPRE86IFdpdGggY3VycmVudCBpbXBsZW1l bnRhdGlvbiwgT1AtVEVFIHdpbGwgbm90IGlzc3VlCisgICAgICAgICAqIFJQQyB0byBmcmVlIHRo aXMgYnVmZmVyLiBHdWVzdCBhbmQgT1AtVEVFIHdpbGwgYmUgb3V0IG9mCisgICAgICAgICAqIHN5 bmM6IGd1ZXN0IGJlbGlldmVzIHRoYXQgaXQgcHJvdmlkZWQgYnVmZmVyIHRvIE9QLVRFRSwKKyAg ICAgICAgICogd2hpbGUgT1AtVEVFIHRoaW5rcyBvZiBvcHBvc2l0ZS4gSWRlYWxseSwgd2UgbmVl ZCB0bworICAgICAgICAgKiBlbXVsYXRlIFJQQyB3aXRoIE9QVEVFX01TR19SUENfQ01EX1NITV9G UkVFIGNvbW1hbmQuCisgICAgICAgICAqLworICAgICAgICBncHJpbnRrKFhFTkxPR19XQVJOSU5H LAorICAgICAgICAgICAgICAgICJ0cmFuc2xhdGVfbm9uY29udGlnKCkgZmFpbGVkLCBPUC1URUUv Z3Vlc3Qgc3RhdGUgaXMgb3V0IG9mIHN5bmMuXG4iKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lk IGhhbmRsZV9ycGNfY21kKHN0cnVjdCBvcHRlZV9kb21haW4gKmN0eCwgc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgb3B0ZWVfc3Rk X2NhbGwgKmNhbGwpCit7CisgICAgc3RydWN0IHNobV9ycGMgKnNobV9ycGM7CisgICAgdWludDY0 X3QgY29va2llOworICAgIHNpemVfdCBhcmdfc2l6ZTsKKworICAgIGNvb2tpZSA9IHJlZ3BhaXJf dG9fdWludDY0KGdldF91c2VyX3JlZyhyZWdzLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnZXRfdXNlcl9yZWcocmVncywgMikpOworCisgICAgc2htX3JwYyA9IGZpbmRfc2ht X3JwYyhjdHgsIGNvb2tpZSk7CisKKyAgICBpZiAoICFzaG1fcnBjICkKKyAgICB7CisgICAgICAg IGdkcHJpbnRrKFhFTkxPR19FUlIsICJDYW4ndCBmaW5kIFNITS1SUEMgd2l0aCBjb29raWUgJWx4 XG4iLCBjb29raWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2htX3JwYy0+eGVu X2FyZyA9IF9fbWFwX2RvbWFpbl9wYWdlKHNobV9ycGMtPnhlbl9hcmdfcGcpOworCisgICAgLyog Rmlyc3QsIGNvcHkgb25seSBoZWFkZXIgdG8gcmVhZCBudW1iZXIgb2YgYXJndW1lbnRzICovCisg ICAgaWYgKCBhY2Nlc3NfZ3Vlc3RfbWVtb3J5X2J5X2lwYShjdXJyZW50LT5kb21haW4sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZm5fdG9fZ2FkZHIoc2htX3JwYy0+Z2Zu KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNobV9ycGMtPnhlbl9hcmcs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IG9wdGVl X21zZ19hcmcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpICkK KyAgICB7CisgICAgICAgIHNobV9ycGMtPnhlbl9hcmctPnJldCA9IFRFRUNfRVJST1JfR0VORVJJ QzsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgYXJnX3NpemUgPSBPUFRFRV9NU0df R0VUX0FSR19TSVpFKHNobV9ycGMtPnhlbl9hcmctPm51bV9wYXJhbXMpOworICAgIGlmICggYXJn X3NpemUgPiBPUFRFRV9NU0dfTk9OQ09OVElHX1BBR0VfU0laRSApCisgICAgeworICAgICAgICBz aG1fcnBjLT54ZW5fYXJnLT5yZXQgPSBURUVDX0VSUk9SX0dFTkVSSUM7CisgICAgICAgIGdvdG8g b3V0OworICAgIH0KKworICAgIC8qIFJlYWQgdGhlIHdob2xlIGNvbW1hbmQgc3RydWN0dXJlICov CisgICAgaWYgKCBhY2Nlc3NfZ3Vlc3RfbWVtb3J5X2J5X2lwYShjdXJyZW50LT5kb21haW4sIGdm bl90b19nYWRkcihzaG1fcnBjLT5nZm4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2htX3JwYy0+eGVuX2FyZywgYXJnX3NpemUsIGZhbHNlKSApCisgICAgeworICAgICAg ICBzaG1fcnBjLT54ZW5fYXJnLT5yZXQgPSBURUVDX0VSUk9SX0dFTkVSSUM7CisgICAgICAgIGdv dG8gb3V0OworICAgIH0KKworICAgIHN3aXRjaCAoc2htX3JwYy0+eGVuX2FyZy0+Y21kKQorICAg IHsKKyAgICBjYXNlIE9QVEVFX01TR19SUENfQ01EX0dFVF9USU1FOgorICAgIGNhc2UgT1BURUVf TVNHX1JQQ19DTURfV0FJVF9RVUVVRToKKyAgICBjYXNlIE9QVEVFX01TR19SUENfQ01EX1NVU1BF TkQ6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT1BURUVfTVNHX1JQQ19DTURfU0hNX0FMTE9D OgorICAgICAgICBoYW5kbGVfcnBjX2NtZF9hbGxvYyhjdHgsIHJlZ3MsIGNhbGwsIHNobV9ycGMp OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE9QVEVFX01TR19SUENfQ01EX1NITV9GUkVFOgor ICAgICAgICBmcmVlX29wdGVlX3NobV9idWYoY3R4LCBzaG1fcnBjLT54ZW5fYXJnLT5wYXJhbXNb MF0udS52YWx1ZS5iKTsKKyAgICAgICAgaWYgKCBjYWxsLT5ycGNfZGF0YV9jb29raWUgPT0gc2ht X3JwYy0+eGVuX2FyZy0+cGFyYW1zWzBdLnUudmFsdWUuYiApCisgICAgICAgICAgICBjYWxsLT5y cGNfZGF0YV9jb29raWUgPSAwOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg ICBicmVhazsKKyAgICB9CisKK291dDoKKyAgICB1bm1hcF9kb21haW5fcGFnZShzaG1fcnBjLT54 ZW5fYXJnKTsKKworICAgIGRvX2NhbGxfd2l0aF9hcmcoY3R4LCBjYWxsLCByZWdzLCBPUFRFRV9T TUNfQ0FMTF9SRVRVUk5fRlJPTV9SUEMsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICBnZXRf dXNlcl9yZWcocmVncywgMyksIDAsIDApOworCit9CisKIHN0YXRpYyB2b2lkIGhhbmRsZV9ycGNf ZnVuY19hbGxvYyhzdHJ1Y3Qgb3B0ZWVfZG9tYWluICpjdHgsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG9wdGVlX3N0ZF9jYWxsICpjYWxsKQpAQCAtMTEy NSw3ICsxMzQwLDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX3JwY19mdW5jX2FsbG9jKHN0cnVjdCBv cHRlZV9kb21haW4gKmN0eCwKICAgICAgICAgcHRyID0gMDsKICAgICB9CiAgICAgZWxzZQotICAg ICAgICBwdHIgPSBwYWdlX3RvX21hZGRyKHNobV9ycGMtPmd1ZXN0X3BhZ2UpOworICAgICAgICBw dHIgPSBwYWdlX3RvX21hZGRyKHNobV9ycGMtPnhlbl9hcmdfcGcpOwogCiBvdXQ6CiAgICAgdWlu dDY0X3RvX3JlZ3BhaXIoJnIxLCAmcjIsIHB0cik7CkBAIC0xMTcxLDggKzEzODYsOCBAQCBzdGF0 aWMgdm9pZCBoYW5kbGVfcnBjKHN0cnVjdCBvcHRlZV9kb21haW4gKmN0eCwgc3RydWN0IGNwdV91 c2VyX3JlZ3MgKnJlZ3MpCiAgICAgY2FzZSBPUFRFRV9TTUNfUlBDX0ZVTkNfRk9SRUlHTl9JTlRS OgogICAgICAgICBicmVhazsKICAgICBjYXNlIE9QVEVFX1NNQ19SUENfRlVOQ19DTUQ6Ci0gICAg ICAgIC8qIFRPRE86IEFkZCBoYW5kbGluZyAqLwotICAgICAgICBicmVhazsKKyAgICAgICAgaGFu ZGxlX3JwY19jbWQoY3R4LCByZWdzLCBjYWxsKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAog ICAgIGRvX2NhbGxfd2l0aF9hcmcoY3R4LCBjYWxsLCByZWdzLCBPUFRFRV9TTUNfQ0FMTF9SRVRV Uk5fRlJPTV9SUEMsCi0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by94ZW4tZGV2ZWw=