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.6 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 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 6626DC4321A for ; Tue, 11 Jun 2019 18:46:59 +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 30658217F5 for ; Tue, 11 Jun 2019 18:46:59 +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="DoGF5T87" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 30658217F5 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 1haln9-0006MB-L3; Tue, 11 Jun 2019 18:46:43 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1haln8-0006L2-IV for xen-devel@lists.xenproject.org; Tue, 11 Jun 2019 18:46:42 +0000 X-Inumbo-ID: 3ed65456-8c79-11e9-8980-bc764e045a96 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (unknown [2a01:111:f400:fe1f::62a]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 3ed65456-8c79-11e9-8980-bc764e045a96; Tue, 11 Jun 2019 18:46:41 +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=nrDLb9OMWsGrBE8kfuCWWtwczqEY3zTZIYSv+8+6ExM=; b=DoGF5T870ClTk7lp+etFuYe/GAwanapKwnNZLxRU6Eyooobt0tULQ423O34ccQhIvgzsa0ivM4EpSfzfdxVH3OD5YWGxhgfdGZQ+lVOHCYc/UJpT4HHCYNwIbBzZiaTd3scgEpCRmUkA+5eDc6t3cnJQfA8T8WhjQnycvYP9WyEIJK8opY7vMRQh9RWFLuSno/uqGQ4fPlcRpc9fMR8PyiZ3A/7Cbe5d1jcMPMQ8OkUoKTDNCshuW7Vtzna+frK2DqjkYfqhKyI61M6sbSeHk5/tRLXOZYrcKaA/q6VafQjy4INC3fHcggcLRRP3Q/KxsP45zO1fulAmVfbCa6N5Qg== Received: from AM0PR03MB4148.eurprd03.prod.outlook.com (20.176.214.210) by AM0PR03MB3795.eurprd03.prod.outlook.com (52.135.146.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.17; Tue, 11 Jun 2019 18:46:36 +0000 Received: from AM0PR03MB4148.eurprd03.prod.outlook.com ([fe80::d09e:ef3:88b6:b1eb]) by AM0PR03MB4148.eurprd03.prod.outlook.com ([fe80::d09e:ef3:88b6:b1eb%7]) with mapi id 15.20.1965.011; Tue, 11 Jun 2019 18:46:36 +0000 From: Volodymyr Babchuk To: "xen-devel@lists.xenproject.org" Thread-Topic: [PATCH v6 06/10] xen/arm: optee: add support for RPC SHM buffers Thread-Index: AQHVIIX/S52g+F1mZEmyRz4+Td76lg== Date: Tue, 11 Jun 2019 18:46:36 +0000 Message-ID: <20190611184541.7281-7-volodymyr_babchuk@epam.com> References: <20190611184541.7281-1-volodymyr_babchuk@epam.com> In-Reply-To: <20190611184541.7281-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: ab0af08e-5448-4906-648c-08d6ee9d21f4 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:AM0PR03MB3795; x-ms-traffictypediagnostic: AM0PR03MB3795: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2201; x-forefront-prvs: 006546F32A x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(136003)(376002)(396003)(366004)(189003)(199004)(73956011)(256004)(1076003)(305945005)(5660300002)(14444005)(76116006)(486006)(7736002)(91956017)(53936002)(14454004)(71190400001)(71200400001)(26005)(80792005)(76176011)(66946007)(2501003)(6506007)(102836004)(25786009)(55236004)(186003)(36756003)(86362001)(68736007)(2351001)(99286004)(2906002)(81166006)(81156014)(66476007)(4326008)(5640700003)(8676002)(8936002)(64756008)(66446008)(6512007)(478600001)(66556008)(316002)(6486002)(54906003)(2616005)(446003)(6116002)(6436002)(3846002)(66066001)(11346002)(72206003)(476003)(6916009); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR03MB3795; 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: iNYmPPH23jFP2SCxa0gfNCJvLKOufbdkLFmclJBMGGlFx2Ll2wygLYcIJoWBYY6LgsZyVN/tTAswHMFwPs4Em+DamQ4HyDc8AmvXnNnNKOOvCNDsv/QmcEy3bVcn3bWfdmXHo2jAS1ae8ER+Hob1XA0e7bq7mN99DqjDSOPtPaSk3wKx9twAAqe1BgqY0XtuU7EWBC1WZzuaxjOsLMJ82eFvj++ZISMcF/uN9K7nim3/whCpctjbJ1JNst7cqvvNpR0ZjkeDwrRElpOBr4iNbvthLMEh6kkDBIeNkpKHSTQvHVPzGEBk/fk6Qk9WRx2VTHEmO8tWweiQZcuZg7wFsji9mJkKqmoFHU8z7EbMCmyEfeYd1Lgyw4atUtHvDfX/7rh6WUNPQtpE+iYr7sfT9s9AA2mI6aFDwSRUdBS+Yog= MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab0af08e-5448-4906-648c-08d6ee9d21f4 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jun 2019 18:46:36.5605 (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-CrossTenant-userprincipalname: Volodymyr_Babchuk@epam.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB3795 Subject: [Xen-devel] [PATCH v6 06/10] xen/arm: optee: add support for RPC SHM buffers 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" T1AtVEVFIHVzdWFsbHkgdXNlcyB0aGUgc2FtZSBpZGVhIHdpdGggY29tbWFuZCBidWZmZXJzIChz ZWUKcHJldmlvdXMgY29tbWl0KSB0byBpc3N1ZSBSUEMgcmVxdWVzdHMuIFByb2JsZW0gaXMgdGhh dCBpbml0aWFsbHkKaXQgaGFzIG5vIGJ1ZmZlciwgd2hlcmUgaXQgY2FuIHdyaXRlIHJlcXVlc3Qu IFNvIHRoZSBmaXJzdCBSUEMKcmVxdWVzdCBpdCBtYWtlcyBpcyBzcGVjaWFsOiBpdCByZXF1ZXN0 cyBOVyB0byBhbGxvY2F0ZSBzaGFyZWQKYnVmZmVyIGZvciBvdGhlciBSUEMgcmVxdWVzdHMuIFVz dWFsbHkgdGhpcyBidWZmZXIgaXMgYWxsb2NhdGVkCm9ubHkgb25jZSBmb3IgZXZlcnkgT1AtVEVF IHRocmVhZCBhbmQgaXQgcmVtYWlucyBhbGxvY2F0ZWQgYWxsCnRoZSB0aW1lIHVudGlsIGd1ZXN0 IHNodXRzIGRvd24uIEd1ZXN0IGNhbiBhc2sgT1AtVEVFIHRvIGRpc2FibGUKUlBDIGJ1ZmZlcnMg Y2FjaGluZywgaW4gdGhpcyBjYXNlIE9QLVRFRSB3aWxsIGFzayBndWVzdCB0bwphbGxvY2F0ZS9m cmVlIGJ1ZmZlciBmb3IgdGhlIGVhY2ggUlBDLgoKTWVkaWF0b3IgbmVlZHMgdG8gcGluIHRoaXMg YnVmZmVyIHRvIG1ha2Ugc3VyZSB0aGF0IHBhZ2Ugd2lsbCBiZQpub3QgZnJlZSB3aGlsZSBpdCBp cyBzaGFyZWQgd2l0aCBPUC1URUUuCgpMaWZlIGN5Y2xlIG9mIHRoaXMgYnVmZmVyIGlzIGNvbnRy b2xsZWQgYnkgT1AtVEVFLiBJdCBhc2tzIGd1ZXN0IHRvCmNyZWF0ZSBidWZmZXIgYW5kIGl0IGFz a3MgaXQgdG8gZnJlZSBpdC4gU28gaXQgdGhlcmUgaXMgbm90IG11Y2ggc2Vuc2UKdG8gbGltaXQg bnVtYmVyIG9mIHRob3NlIGJ1ZmZlcnMsIGJlY2F1c2Ugd2UgYWxyZWFkeSBsaW1pdCB0aGUgbnVt YmVyCm9mIGNvbmN1cnJlbnQgc3RhbmRhcmQgY2FsbHMgYW5kIHByZXZlbnRpb24gb2YgUlBDIGJ1 ZmZlciBhbGxvY2F0aW9uIHdpbGwKaW1wYWlyIE9QLVRFRSBmdW5jdGlvbmFsaXR5LgoKVGhvc2Ug YnVmZmVycyBjYW4gYmUgZnJlZWQgaW4gdHdvIHdheXM6IGVpdGhlciBPUC1URUUgaXNzdWVzCk9Q VEVFX1NNQ19SUENfRlVOQ19GUkVFIFJQQyByZXF1ZXN0IG9yIGd1ZXN0IHRyaWVzIHRvIGRpc2Fi bGUKYnVmZmVyIGNhY2hpbmcgYnkgY2FsbGluZyBPUFRFRV9TTUNfRElTQUJMRV9TSE1fQ0FDSEUg ZnVuY3Rpb24uCkluIHRoZSBsYXR0ZXIgY2FzZSBPUC1URUUgd2lsbCByZXR1cm4gY29va2llIG9m IHRoZSBTSE0gYnVmZmVyIGl0Cmp1c3QgZnJlZWQuCgpPUC1URUUgZXhwZWN0cyB0aGF0IHRoaXMg UlBDIGJ1ZmZlciBoYXZlIHNpemUgb2YKT1BURUVfTVNHX05PTkNPTlRJR19QQUdFX1NJWkUsIHdo aWNoIGVxdWFscyB0byA0MDk2IGFuZCBpcyBhbGlnbmVkCndpdGggdGhlIHNhbWUgc2l6ZS4gU28s IGJhc2ljYWxseSBpdCBleHBlY3RzIG9uZSA0ayBwYWdlIGZyb20gdGhlCmd1ZXN0LiBUaGlzIGlz IHRoZSBzYW1lIGFzIFhlbidzIFBBR0VfU0laRS4KClNpZ25lZC1vZmYtYnk6IFZvbG9keW15ciBC YWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4KQWNrZWQtYnk6IEp1bGllbiBHcmFs bCA8anVsaWVuLmdyYWxsQGFybS5jb20+CgotLS0KIEFsbCB0aGUgcGF0Y2hlcyB0byBvcHRlZS5j IHNob3VsZCBiZSBtZXJnZWQgdG9nZXRoZXIuIFRoZXkgd2VyZQogc3BsaXQgdG8gZWFzZSB1cCBy ZXZpZXcuIEJ1dCB0aGV5IGRlcGVuZCBoZWF2aWx5IG9uIGVhY2ggb3RoZXIuCgogQ2hhbmdlcyBm cm9tIHY0OgogIC0gaGFuZGxlX3JwY19mdW5jX2FsbG9jKCkgbm93IGNhbGxzIGRvX2NhbGxfd2l0 aF9hcmcoKSBkaXJlY3RseQoKIENoYW5nZXMgZnJvbSB2MzoKICAtIFJlbW92ZWQgTUFYX1JQQ19T SE1TIGNvbnN0YW50LiBOb3cgdGhpcyB2YWx1ZSBkZXBlbmRzIG9uCiAgICBudW1iZXIgb2YgT1At VEVFIHRocmVhZHMKICAtIFZhcmlvdXMgZm9ybWF0dGluZyBmaXhlcwogIC0gQWRkZWQgY2hlY2tz IGZvciBndWVzdCBtZW1vcnkgdHlwZQoKIENoYW5nZXMgZnJvbSB2MjoKICAtIEFkZGVkIGNoZWNr IHRvIGVuc3VyZSB0aGF0IGd1ZXN0cyBkb2VzIG5vdCByZXR1cm4gdHdvIFNITSBidWZmZXJzCiAg ICB3aXRoIHRoZSBzYW1lIGNvb2tpZQogIC0gRml4ZWQgY29kaW5nIHN0eWxlCiAgLSBTdG9yaW5n IFJQQyBwYXJhbWV0ZXJzIGR1cmluZyBSUEMgcmV0dXJuIHRvIG1ha2Ugc3VyZSwgdGhhdCBndWVz dAogICAgd2lsbCBub3QgY2hhbmdlIHRoZW0gZHVyaW5nIGNhbGwgY29udGludWF0aW9uCi0tLQog eGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5jIHwgMTQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvb3B0ZWUuYyBiL3hlbi9hcmNo L2FybS90ZWUvb3B0ZWUuYwppbmRleCBmMDkyNDkyODQ5Li4xNzU3ODlmYjAwIDEwMDY0NAotLS0g YS94ZW4vYXJjaC9hcm0vdGVlL29wdGVlLmMKKysrIGIveGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5j CkBAIC04MSw5ICs4MSwxNyBAQCBzdHJ1Y3Qgb3B0ZWVfc3RkX2NhbGwgewogICAgIHJlZ2lzdGVy X3QgcnBjX3BhcmFtc1syXTsKIH07CiAKKy8qIFByZS1hbGxvY2F0ZWQgU0hNIGJ1ZmZlciBmb3Ig UlBDIGNvbW1hbmRzICovCitzdHJ1Y3Qgc2htX3JwYyB7CisgICAgc3RydWN0IGxpc3RfaGVhZCBs aXN0OworICAgIHN0cnVjdCBwYWdlX2luZm8gKmd1ZXN0X3BhZ2U7CisgICAgdWludDY0X3QgY29v a2llOworfTsKKwogLyogRG9tYWluIGNvbnRleHQgKi8KIHN0cnVjdCBvcHRlZV9kb21haW4gewog ICAgIHN0cnVjdCBsaXN0X2hlYWQgY2FsbF9saXN0OworICAgIHN0cnVjdCBsaXN0X2hlYWQgc2ht X3JwY19saXN0OwogICAgIGF0b21pY190IGNhbGxfY291bnQ7CiAgICAgc3BpbmxvY2tfdCBsb2Nr OwogfTsKQEAgLTE1OCw2ICsxNjYsNyBAQCBzdGF0aWMgaW50IG9wdGVlX2RvbWFpbl9pbml0KHN0 cnVjdCBkb21haW4gKmQpCiAgICAgfQogCiAgICAgSU5JVF9MSVNUX0hFQUQoJmN0eC0+Y2FsbF9s aXN0KTsKKyAgICBJTklUX0xJU1RfSEVBRCgmY3R4LT5zaG1fcnBjX2xpc3QpOwogICAgIGF0b21p Y19zZXQoJmN0eC0+Y2FsbF9jb3VudCwgMCk7CiAgICAgc3Bpbl9sb2NrX2luaXQoJmN0eC0+bG9j ayk7CiAKQEAgLTE5OSw3ICsyMDgsMTEgQEAgc3RhdGljIHN0cnVjdCBvcHRlZV9zdGRfY2FsbCAq YWxsb2NhdGVfc3RkX2NhbGwoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4KQogICAgIHN0cnVjdCBv cHRlZV9zdGRfY2FsbCAqY2FsbDsKICAgICBpbnQgY291bnQ7CiAKLSAgICAvKiBNYWtlIHN1cmUg dGhhdCBndWVzdCBkb2VzIG5vdCBleGVjdXRlIG1vcmUgdGhhbiBtYXhfb3B0ZWVfdGhyZWFkcyAq LworICAgIC8qCisgICAgICogTWFrZSBzdXJlIHRoYXQgZ3Vlc3QgZG9lcyBub3QgZXhlY3V0ZSBt b3JlIHRoYW4gbWF4X29wdGVlX3RocmVhZHMuCisgICAgICogVGhpcyBhbHNvIGluZGlyZWN0bHkg bGltaXRzIG51bWJlciBvZiBSUEMgU0hNIGJ1ZmZlcnMsIGJlY2F1c2UgT1AtVEVFCisgICAgICog YWxsb2NhdGVzIG9uZSBzdWNoIGJ1ZmZlciBwZXIgc3RhbmRhcmQgY2FsbC4KKyAgICAgKi8KICAg ICBjb3VudCA9IGF0b21pY19hZGRfdW5sZXNzKCZjdHgtPmNhbGxfY291bnQsIDEsIG1heF9vcHRl ZV90aHJlYWRzKTsKICAgICBpZiAoIGNvdW50ID09IG1heF9vcHRlZV90aHJlYWRzICkKICAgICAg ICAgcmV0dXJuIEVSUl9QVFIoLUVOT1NQQyk7CkBAIC0yOTQsMTAgKzMwNyw4MCBAQCBzdGF0aWMg dm9pZCBwdXRfc3RkX2NhbGwoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4LCBzdHJ1Y3Qgb3B0ZWVf c3RkX2NhbGwgKmNhbGwpCiAgICAgc3Bpbl91bmxvY2soJmN0eC0+bG9jayk7CiB9CiAKK3N0YXRp YyBzdHJ1Y3Qgc2htX3JwYyAqYWxsb2NhdGVfYW5kX3Bpbl9zaG1fcnBjKHN0cnVjdCBvcHRlZV9k b21haW4gKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdmbl90IGdmbiwgdWludDY0X3QgY29va2llKQoreworICAgIHN0cnVjdCBzaG1fcnBjICpz aG1fcnBjLCAqc2htX3JwY190bXA7CisKKyAgICBzaG1fcnBjID0geHphbGxvYyhzdHJ1Y3Qgc2ht X3JwYyk7CisgICAgaWYgKCAhc2htX3JwYyApCisgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9N RU0pOworCisgICAgLyogVGhpcyBwYWdlIHdpbGwgYmUgc2hhcmVkIHdpdGggT1AtVEVFLCBzbyB3 ZSBuZWVkIHRvIHBpbiBpdC4gKi8KKyAgICBzaG1fcnBjLT5ndWVzdF9wYWdlID0gZ2V0X2RvbWFp bl9yYW1fcGFnZShnZm4pOworICAgIGlmICggIXNobV9ycGMtPmd1ZXN0X3BhZ2UgKQorICAgICAg ICBnb3RvIGVycjsKKworICAgIHNobV9ycGMtPmNvb2tpZSA9IGNvb2tpZTsKKworICAgIHNwaW5f bG9jaygmY3R4LT5sb2NrKTsKKyAgICAvKiBDaGVjayBpZiB0aGVyZSBpcyBleGlzdGluZyBTSE0g d2l0aCB0aGUgc2FtZSBjb29raWUuICovCisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggc2htX3Jw Y190bXAsICZjdHgtPnNobV9ycGNfbGlzdCwgbGlzdCApCisgICAgeworICAgICAgICBpZiAoIHNo bV9ycGNfdG1wLT5jb29raWUgPT0gY29va2llICkKKyAgICAgICAgeworICAgICAgICAgICAgc3Bp bl91bmxvY2soJmN0eC0+bG9jayk7CisgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklO RywgIkd1ZXN0IHRyaWVzIHRvIHVzZSB0aGUgc2FtZSBSUEMgU0hNIGNvb2tpZSAlbHhcbiIsCisg ICAgICAgICAgICAgICAgICAgICBjb29raWUpOworICAgICAgICAgICAgZ290byBlcnI7CisgICAg ICAgIH0KKyAgICB9CisKKyAgICBsaXN0X2FkZF90YWlsKCZzaG1fcnBjLT5saXN0LCAmY3R4LT5z aG1fcnBjX2xpc3QpOworICAgIHNwaW5fdW5sb2NrKCZjdHgtPmxvY2spOworCisgICAgcmV0dXJu IHNobV9ycGM7CisKK2VycjoKKyAgICBpZiAoIHNobV9ycGMtPmd1ZXN0X3BhZ2UgKQorICAgICAg ICBwdXRfcGFnZShzaG1fcnBjLT5ndWVzdF9wYWdlKTsKKyAgICB4ZnJlZShzaG1fcnBjKTsKKwor ICAgIHJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworfQorCitzdGF0aWMgdm9pZCBmcmVlX3NobV9y cGMoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4LCB1aW50NjRfdCBjb29raWUpCit7CisgICAgc3Ry dWN0IHNobV9ycGMgKnNobV9ycGM7CisgICAgYm9vbCBmb3VuZCA9IGZhbHNlOworCisgICAgc3Bp bl9sb2NrKCZjdHgtPmxvY2spOworCisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggc2htX3JwYywg JmN0eC0+c2htX3JwY19saXN0LCBsaXN0ICkKKyAgICB7CisgICAgICAgIGlmICggc2htX3JwYy0+ Y29va2llID09IGNvb2tpZSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsK KyAgICAgICAgICAgIGxpc3RfZGVsKCZzaG1fcnBjLT5saXN0KTsKKyAgICAgICAgICAgIGJyZWFr OworICAgICAgICB9CisgICAgfQorICAgIHNwaW5fdW5sb2NrKCZjdHgtPmxvY2spOworCisgICAg aWYgKCAhZm91bmQgKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoc2htX3JwYy0+Z3Vl c3RfcGFnZSk7CisgICAgcHV0X3BhZ2Uoc2htX3JwYy0+Z3Vlc3RfcGFnZSk7CisKKyAgICB4ZnJl ZShzaG1fcnBjKTsKK30KKwogc3RhdGljIGludCBvcHRlZV9yZWxpbnF1aXNoX3Jlc291cmNlcyhz dHJ1Y3QgZG9tYWluICpkKQogewogICAgIHN0cnVjdCBhcm1fc21jY2NfcmVzIHJlc3A7CiAgICAg c3RydWN0IG9wdGVlX3N0ZF9jYWxsICpjYWxsLCAqY2FsbF90bXA7CisgICAgc3RydWN0IHNobV9y cGMgKnNobV9ycGMsICpzaG1fcnBjX3RtcDsKICAgICBzdHJ1Y3Qgb3B0ZWVfZG9tYWluICpjdHgg PSBkLT5hcmNoLnRlZTsKIAogICAgIGlmICggIWN0eCApCkBAIC0zMTQsNiArMzk3LDE2IEBAIHN0 YXRpYyBpbnQgb3B0ZWVfcmVsaW5xdWlzaF9yZXNvdXJjZXMoc3RydWN0IGRvbWFpbiAqZCkKICAg ICBpZiAoIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQogICAgICAgICByZXR1cm4gLUVSRVNU QVJUOwogCisgICAgLyoKKyAgICAgKiBOdW1iZXIgb2YgdGhpcyBidWZmZXJzIGFsc28gZGVwZW5k cyBvbiBtYXhfb3B0ZWVfdGhyZWFkcywgc28KKyAgICAgKiBjaGVjayB0aGUgY29tbWVudCBhYm92 ZS4KKyAgICAgKi8KKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoIHNobV9ycGMsIHNobV9y cGNfdG1wLCAmY3R4LT5zaG1fcnBjX2xpc3QsIGxpc3QgKQorICAgICAgICBmcmVlX3NobV9ycGMo Y3R4LCBzaG1fcnBjLT5jb29raWUpOworCisgICAgaWYgKCBoeXBlcmNhbGxfcHJlZW1wdF9jaGVj aygpICkKKyAgICAgICAgcmV0dXJuIC1FUkVTVEFSVDsKKwogICAgIC8qCiAgICAgICogSW5mb3Jt IE9QLVRFRSB0aGF0IGRvbWFpbiBpcyBzaHV0dGluZyBkb3duLiBUaGlzIGlzCiAgICAgICogYWxz byBhIGZhc3QgU01DIGNhbGwsIGxpa2UgT1BURUVfU01DX1ZNX0NSRUFURUQsIHNvCkBAIC0zMjgs NiArNDIxLDcgQEAgc3RhdGljIGludCBvcHRlZV9yZWxpbnF1aXNoX3Jlc291cmNlcyhzdHJ1Y3Qg ZG9tYWluICpkKQogCiAgICAgQVNTRVJUKCFzcGluX2lzX2xvY2tlZCgmY3R4LT5sb2NrKSk7CiAg ICAgQVNTRVJUKCFhdG9taWNfcmVhZCgmY3R4LT5jYWxsX2NvdW50KSk7CisgICAgQVNTRVJUKGxp c3RfZW1wdHkoJmN0eC0+c2htX3JwY19saXN0KSk7CiAKICAgICBYRlJFRShkLT5hcmNoLnRlZSk7 CiAKQEAgLTU4Nyw2ICs2ODEsNDggQEAgZXJyOgogICogcmVxdWVzdCBmcm9tIE9QLVRFRSBhbmQg d2lzaGVkIHRvIHJlc3VtZSB0aGUgaW50ZXJydXB0ZWQgc3RhbmRhcmQKICAqIGNhbGwuCiAgKi8K K3N0YXRpYyB2b2lkIGhhbmRsZV9ycGNfZnVuY19hbGxvYyhzdHJ1Y3Qgb3B0ZWVfZG9tYWluICpj dHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNwdV91c2VyX3Jl Z3MgKnJlZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG9wdGVl X3N0ZF9jYWxsICpjYWxsKQoreworICAgIHN0cnVjdCBzaG1fcnBjICpzaG1fcnBjOworICAgIHJl Z2lzdGVyX3QgcjEsIHIyOworICAgIHBhZGRyX3QgcHRyID0gcmVncGFpcl90b191aW50NjQoZ2V0 X3VzZXJfcmVnKHJlZ3MsIDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2V0X3VzZXJfcmVnKHJlZ3MsIDIpKTsKKyAgICB1aW50NjRfdCBjb29raWUgPSByZWdwYWlyX3Rv X3VpbnQ2NChnZXRfdXNlcl9yZWcocmVncywgNCksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2V0X3VzZXJfcmVnKHJlZ3MsIDUpKTsKKworICAgIGlmICggcHRyICYg KE9QVEVFX01TR19OT05DT05USUdfUEFHRV9TSVpFIC0gMSkgKQorICAgIHsKKyAgICAgICAgZ2Rw cmludGsoWEVOTE9HX1dBUk5JTkcsICJEb21haW4gcmV0dXJuZWQgaW52YWxpZCBSUEMgY29tbWFu ZCBidWZmZXJcbiIpOworICAgICAgICAvKgorICAgICAgICAgKiBPUC1URUUgaXMgd2FpdGluZyBm b3IgYSByZXNwb25zZSB0byB0aGUgUlBDLiBXZSBjYW4ndCBqdXN0CisgICAgICAgICAqIHJldHVy biBlcnJvciB0byB0aGUgZ3Vlc3QuIFdlIG5lZWQgdG8gcHJvdmlkZSBzb21lIGludmFsaWQKKyAg ICAgICAgICogdmFsdWUgdG8gT1AtVEVFLCBzbyBpdCBjYW4gaGFuZGxlIGVycm9yIG9uIGl0cyBz aWRlLgorICAgICAgICAgKi8KKyAgICAgICAgcHRyID0gMDsKKyAgICAgICAgZ290byBvdXQ7Cisg ICAgfQorCisgICAgc2htX3JwYyA9IGFsbG9jYXRlX2FuZF9waW5fc2htX3JwYyhjdHgsIGdhZGRy X3RvX2dmbihwdHIpLCBjb29raWUpOworICAgIGlmICggSVNfRVJSKHNobV9ycGMpICkKKyAgICB7 CisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiRmFpbGVkIHRvIGFsbG9jYXRlIHNo bV9ycGMgb2JqZWN0OiAlbGRcbiIsCisgICAgICAgICAgICAgICAgIFBUUl9FUlIoc2htX3JwYykp OworICAgICAgICBwdHIgPSAwOworICAgIH0KKyAgICBlbHNlCisgICAgICAgIHB0ciA9IHBhZ2Vf dG9fbWFkZHIoc2htX3JwYy0+Z3Vlc3RfcGFnZSk7CisKK291dDoKKyAgICB1aW50NjRfdG9fcmVn cGFpcigmcjEsICZyMiwgcHRyKTsKKworICAgIGRvX2NhbGxfd2l0aF9hcmcoY3R4LCBjYWxsLCBy ZWdzLCBPUFRFRV9TTUNfQ0FMTF9SRVRVUk5fRlJPTV9SUEMsIHIxLCByMiwKKyAgICAgICAgICAg ICAgICAgICAgIGdldF91c2VyX3JlZyhyZWdzLCAzKSwKKyAgICAgICAgICAgICAgICAgICAgIGdl dF91c2VyX3JlZyhyZWdzLCA0KSwKKyAgICAgICAgICAgICAgICAgICAgIGdldF91c2VyX3JlZyhy ZWdzLCA1KSk7Cit9CisKIHN0YXRpYyB2b2lkIGhhbmRsZV9ycGMoc3RydWN0IG9wdGVlX2RvbWFp biAqY3R4LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICBzdHJ1Y3Qgb3B0ZWVf c3RkX2NhbGwgKmNhbGw7CkBAIC02MTAsMTEgKzc0NiwxNSBAQCBzdGF0aWMgdm9pZCBoYW5kbGVf cnBjKHN0cnVjdCBvcHRlZV9kb21haW4gKmN0eCwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Mp CiAgICAgc3dpdGNoICggY2FsbC0+cnBjX29wICkKICAgICB7CiAgICAgY2FzZSBPUFRFRV9TTUNf UlBDX0ZVTkNfQUxMT0M6Ci0gICAgICAgIC8qIFRPRE86IEFkZCBoYW5kbGluZyAqLwotICAgICAg ICBicmVhazsKKyAgICAgICAgaGFuZGxlX3JwY19mdW5jX2FsbG9jKGN0eCwgcmVncywgY2FsbCk7 CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIE9QVEVFX1NNQ19SUENfRlVOQ19GUkVFOgotICAg ICAgICAvKiBUT0RPOiBBZGQgaGFuZGxpbmcgKi8KKyAgICB7CisgICAgICAgIHVpbnQ2NF90IGNv b2tpZSA9IHJlZ3BhaXJfdG9fdWludDY0KGNhbGwtPnJwY19wYXJhbXNbMF0sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwtPnJwY19wYXJhbXNbMV0pOwor ICAgICAgICBmcmVlX3NobV9ycGMoY3R4LCBjb29raWUpOwogICAgICAgICBicmVhazsKKyAgICB9 CiAgICAgY2FzZSBPUFRFRV9TTUNfUlBDX0ZVTkNfRk9SRUlHTl9JTlRSOgogICAgICAgICBicmVh azsKICAgICBjYXNlIE9QVEVFX1NNQ19SUENfRlVOQ19DTUQ6CkBAIC03MjAsNiArODYwLDcgQEAg c3RhdGljIGJvb2wgb3B0ZWVfaGFuZGxlX2NhbGwoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Mp CiAgICAgICAgICAgICAgICAgICAgICAgT1BURUVfQ0xJRU5UX0lEKGN1cnJlbnQtPmRvbWFpbiks ICZyZXNwKTsKICAgICAgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDAsIHJlc3AuYTApOwogICAgICAg ICBpZiAoIHJlc3AuYTAgPT0gT1BURUVfU01DX1JFVFVSTl9PSyApIHsKKyAgICAgICAgICAgIGZy ZWVfc2htX3JwYyhjdHgsICByZWdwYWlyX3RvX3VpbnQ2NChyZXNwLmExLCByZXNwLmEyKSk7CiAg ICAgICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMSwgcmVzcC5hMSk7CiAgICAgICAgICAgICBz ZXRfdXNlcl9yZWcocmVncywgMiwgcmVzcC5hMik7CiAgICAgICAgIH0KLS0gCjIuMjEuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==