From mboxrd@z Thu Jan 1 00:00:00 1970 From: Volodymyr Babchuk Subject: [PATCH v5 06/10] xen/arm: optee: add support for RPC SHM buffers Date: Tue, 21 May 2019 21:26:05 +0000 Message-ID: <20190521212530.12706-7-volodymyr_babchuk@epam.com> References: <20190521212530.12706-1-volodymyr_babchuk@epam.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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 1hTCGw-0008Im-3Q for xen-devel@lists.xenproject.org; Tue, 21 May 2019 21:26:10 +0000 In-Reply-To: <20190521212530.12706-1-volodymyr_babchuk@epam.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: "xen-devel@lists.xenproject.org" Cc: "tee-dev@lists.linaro.org" , Julien Grall , Stefano Stabellini , Volodymyr Babchuk List-Id: xen-devel@lists.xenproject.org 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 YWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4KCi0tLQoKIEFsbCB0aGUgcGF0Y2hl cyB0byBvcHRlZS5jIHNob3VsZCBiZSBtZXJnZWQgdG9nZXRoZXIuIFRoZXkgd2VyZQogc3BsaXQg dG8gZWFzZSB1cCByZXZpZXcuIEJ1dCB0aGV5IGRlcGVuZCBoZWF2aWx5IG9uIGVhY2ggb3RoZXIu CgogQ2hhbmdlcyBmcm9tIHY0OgogIC0gaGFuZGxlX3JwY19mdW5jX2FsbG9jKCkgbm93IGNhbGxz IGRvX2NhbGxfd2l0aF9hcmcoKSBkaXJlY3RseQoKIENoYW5nZXMgZnJvbSB2MzoKICAtIFJlbW92 ZWQgTUFYX1JQQ19TSE1TIGNvbnN0YW50LiBOb3cgdGhpcyB2YWx1ZSBkZXBlbmRzIG9uCiAgICBu dW1iZXIgb2YgT1AtVEVFIHRocmVhZHMKICAtIFZhcmlvdXMgZm9ybWF0dGluZyBmaXhlcwogIC0g QWRkZWQgY2hlY2tzIGZvciBndWVzdCBtZW1vcnkgdHlwZQoKIENoYW5nZXMgZnJvbSB2MjoKICAt IEFkZGVkIGNoZWNrIHRvIGVuc3VyZSB0aGF0IGd1ZXN0cyBkb2VzIG5vdCByZXR1cm4gdHdvIFNI TSBidWZmZXJzCiAgICB3aXRoIHRoZSBzYW1lIGNvb2tpZQogIC0gRml4ZWQgY29kaW5nIHN0eWxl CiAgLSBTdG9yaW5nIFJQQyBwYXJhbWV0ZXJzIGR1cmluZyBSUEMgcmV0dXJuIHRvIG1ha2Ugc3Vy ZSwgdGhhdCBndWVzdAogICAgd2lsbCBub3QgY2hhbmdlIHRoZW0gZHVyaW5nIGNhbGwgY29udGlu dWF0aW9uCi0tLQogeGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5jIHwgMTQ5ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25z KCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvb3B0ZWUu YyBiL3hlbi9hcmNoL2FybS90ZWUvb3B0ZWUuYwppbmRleCBmMDkyNDkyODQ5Li4xNzU3ODlmYjAw IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdGVlL29wdGVlLmMKKysrIGIveGVuL2FyY2gvYXJt L3RlZS9vcHRlZS5jCkBAIC04MSw5ICs4MSwxNyBAQCBzdHJ1Y3Qgb3B0ZWVfc3RkX2NhbGwgewog ICAgIHJlZ2lzdGVyX3QgcnBjX3BhcmFtc1syXTsKIH07CiAKKy8qIFByZS1hbGxvY2F0ZWQgU0hN IGJ1ZmZlciBmb3IgUlBDIGNvbW1hbmRzICovCitzdHJ1Y3Qgc2htX3JwYyB7CisgICAgc3RydWN0 IGxpc3RfaGVhZCBsaXN0OworICAgIHN0cnVjdCBwYWdlX2luZm8gKmd1ZXN0X3BhZ2U7CisgICAg dWludDY0X3QgY29va2llOworfTsKKwogLyogRG9tYWluIGNvbnRleHQgKi8KIHN0cnVjdCBvcHRl ZV9kb21haW4gewogICAgIHN0cnVjdCBsaXN0X2hlYWQgY2FsbF9saXN0OworICAgIHN0cnVjdCBs aXN0X2hlYWQgc2htX3JwY19saXN0OwogICAgIGF0b21pY190IGNhbGxfY291bnQ7CiAgICAgc3Bp bmxvY2tfdCBsb2NrOwogfTsKQEAgLTE1OCw2ICsxNjYsNyBAQCBzdGF0aWMgaW50IG9wdGVlX2Rv bWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgfQogCiAgICAgSU5JVF9MSVNUX0hFQUQo JmN0eC0+Y2FsbF9saXN0KTsKKyAgICBJTklUX0xJU1RfSEVBRCgmY3R4LT5zaG1fcnBjX2xpc3Qp OwogICAgIGF0b21pY19zZXQoJmN0eC0+Y2FsbF9jb3VudCwgMCk7CiAgICAgc3Bpbl9sb2NrX2lu aXQoJmN0eC0+bG9jayk7CiAKQEAgLTE5OSw3ICsyMDgsMTEgQEAgc3RhdGljIHN0cnVjdCBvcHRl ZV9zdGRfY2FsbCAqYWxsb2NhdGVfc3RkX2NhbGwoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4KQog ICAgIHN0cnVjdCBvcHRlZV9zdGRfY2FsbCAqY2FsbDsKICAgICBpbnQgY291bnQ7CiAKLSAgICAv KiBNYWtlIHN1cmUgdGhhdCBndWVzdCBkb2VzIG5vdCBleGVjdXRlIG1vcmUgdGhhbiBtYXhfb3B0 ZWVfdGhyZWFkcyAqLworICAgIC8qCisgICAgICogTWFrZSBzdXJlIHRoYXQgZ3Vlc3QgZG9lcyBu b3QgZXhlY3V0ZSBtb3JlIHRoYW4gbWF4X29wdGVlX3RocmVhZHMuCisgICAgICogVGhpcyBhbHNv IGluZGlyZWN0bHkgbGltaXRzIG51bWJlciBvZiBSUEMgU0hNIGJ1ZmZlcnMsIGJlY2F1c2UgT1At VEVFCisgICAgICogYWxsb2NhdGVzIG9uZSBzdWNoIGJ1ZmZlciBwZXIgc3RhbmRhcmQgY2FsbC4K KyAgICAgKi8KICAgICBjb3VudCA9IGF0b21pY19hZGRfdW5sZXNzKCZjdHgtPmNhbGxfY291bnQs IDEsIG1heF9vcHRlZV90aHJlYWRzKTsKICAgICBpZiAoIGNvdW50ID09IG1heF9vcHRlZV90aHJl YWRzICkKICAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT1NQQyk7CkBAIC0yOTQsMTAgKzMwNyw4 MCBAQCBzdGF0aWMgdm9pZCBwdXRfc3RkX2NhbGwoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4LCBz dHJ1Y3Qgb3B0ZWVfc3RkX2NhbGwgKmNhbGwpCiAgICAgc3Bpbl91bmxvY2soJmN0eC0+bG9jayk7 CiB9CiAKK3N0YXRpYyBzdHJ1Y3Qgc2htX3JwYyAqYWxsb2NhdGVfYW5kX3Bpbl9zaG1fcnBjKHN0 cnVjdCBvcHRlZV9kb21haW4gKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdmbl90IGdmbiwgdWludDY0X3QgY29va2llKQoreworICAgIHN0cnVj dCBzaG1fcnBjICpzaG1fcnBjLCAqc2htX3JwY190bXA7CisKKyAgICBzaG1fcnBjID0geHphbGxv YyhzdHJ1Y3Qgc2htX3JwYyk7CisgICAgaWYgKCAhc2htX3JwYyApCisgICAgICAgIHJldHVybiBF UlJfUFRSKC1FTk9NRU0pOworCisgICAgLyogVGhpcyBwYWdlIHdpbGwgYmUgc2hhcmVkIHdpdGgg T1AtVEVFLCBzbyB3ZSBuZWVkIHRvIHBpbiBpdC4gKi8KKyAgICBzaG1fcnBjLT5ndWVzdF9wYWdl ID0gZ2V0X2RvbWFpbl9yYW1fcGFnZShnZm4pOworICAgIGlmICggIXNobV9ycGMtPmd1ZXN0X3Bh Z2UgKQorICAgICAgICBnb3RvIGVycjsKKworICAgIHNobV9ycGMtPmNvb2tpZSA9IGNvb2tpZTsK KworICAgIHNwaW5fbG9jaygmY3R4LT5sb2NrKTsKKyAgICAvKiBDaGVjayBpZiB0aGVyZSBpcyBl eGlzdGluZyBTSE0gd2l0aCB0aGUgc2FtZSBjb29raWUuICovCisgICAgbGlzdF9mb3JfZWFjaF9l bnRyeSggc2htX3JwY190bXAsICZjdHgtPnNobV9ycGNfbGlzdCwgbGlzdCApCisgICAgeworICAg ICAgICBpZiAoIHNobV9ycGNfdG1wLT5jb29raWUgPT0gY29va2llICkKKyAgICAgICAgeworICAg ICAgICAgICAgc3Bpbl91bmxvY2soJmN0eC0+bG9jayk7CisgICAgICAgICAgICBnZHByaW50ayhY RU5MT0dfV0FSTklORywgIkd1ZXN0IHRyaWVzIHRvIHVzZSB0aGUgc2FtZSBSUEMgU0hNIGNvb2tp ZSAlbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICBjb29raWUpOworICAgICAgICAgICAgZ290 byBlcnI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsaXN0X2FkZF90YWlsKCZzaG1fcnBjLT5s aXN0LCAmY3R4LT5zaG1fcnBjX2xpc3QpOworICAgIHNwaW5fdW5sb2NrKCZjdHgtPmxvY2spOwor CisgICAgcmV0dXJuIHNobV9ycGM7CisKK2VycjoKKyAgICBpZiAoIHNobV9ycGMtPmd1ZXN0X3Bh Z2UgKQorICAgICAgICBwdXRfcGFnZShzaG1fcnBjLT5ndWVzdF9wYWdlKTsKKyAgICB4ZnJlZShz aG1fcnBjKTsKKworICAgIHJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworfQorCitzdGF0aWMgdm9p ZCBmcmVlX3NobV9ycGMoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4LCB1aW50NjRfdCBjb29raWUp Cit7CisgICAgc3RydWN0IHNobV9ycGMgKnNobV9ycGM7CisgICAgYm9vbCBmb3VuZCA9IGZhbHNl OworCisgICAgc3Bpbl9sb2NrKCZjdHgtPmxvY2spOworCisgICAgbGlzdF9mb3JfZWFjaF9lbnRy eSggc2htX3JwYywgJmN0eC0+c2htX3JwY19saXN0LCBsaXN0ICkKKyAgICB7CisgICAgICAgIGlm ICggc2htX3JwYy0+Y29va2llID09IGNvb2tpZSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZv dW5kID0gdHJ1ZTsKKyAgICAgICAgICAgIGxpc3RfZGVsKCZzaG1fcnBjLT5saXN0KTsKKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHNwaW5fdW5sb2NrKCZjdHgtPmxv Y2spOworCisgICAgaWYgKCAhZm91bmQgKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQo c2htX3JwYy0+Z3Vlc3RfcGFnZSk7CisgICAgcHV0X3BhZ2Uoc2htX3JwYy0+Z3Vlc3RfcGFnZSk7 CisKKyAgICB4ZnJlZShzaG1fcnBjKTsKK30KKwogc3RhdGljIGludCBvcHRlZV9yZWxpbnF1aXNo X3Jlc291cmNlcyhzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIHN0cnVjdCBhcm1fc21jY2NfcmVz IHJlc3A7CiAgICAgc3RydWN0IG9wdGVlX3N0ZF9jYWxsICpjYWxsLCAqY2FsbF90bXA7CisgICAg c3RydWN0IHNobV9ycGMgKnNobV9ycGMsICpzaG1fcnBjX3RtcDsKICAgICBzdHJ1Y3Qgb3B0ZWVf ZG9tYWluICpjdHggPSBkLT5hcmNoLnRlZTsKIAogICAgIGlmICggIWN0eCApCkBAIC0zMTQsNiAr Mzk3LDE2IEBAIHN0YXRpYyBpbnQgb3B0ZWVfcmVsaW5xdWlzaF9yZXNvdXJjZXMoc3RydWN0IGRv bWFpbiAqZCkKICAgICBpZiAoIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQogICAgICAgICBy ZXR1cm4gLUVSRVNUQVJUOwogCisgICAgLyoKKyAgICAgKiBOdW1iZXIgb2YgdGhpcyBidWZmZXJz IGFsc28gZGVwZW5kcyBvbiBtYXhfb3B0ZWVfdGhyZWFkcywgc28KKyAgICAgKiBjaGVjayB0aGUg Y29tbWVudCBhYm92ZS4KKyAgICAgKi8KKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoIHNo bV9ycGMsIHNobV9ycGNfdG1wLCAmY3R4LT5zaG1fcnBjX2xpc3QsIGxpc3QgKQorICAgICAgICBm cmVlX3NobV9ycGMoY3R4LCBzaG1fcnBjLT5jb29raWUpOworCisgICAgaWYgKCBoeXBlcmNhbGxf cHJlZW1wdF9jaGVjaygpICkKKyAgICAgICAgcmV0dXJuIC1FUkVTVEFSVDsKKwogICAgIC8qCiAg ICAgICogSW5mb3JtIE9QLVRFRSB0aGF0IGRvbWFpbiBpcyBzaHV0dGluZyBkb3duLiBUaGlzIGlz CiAgICAgICogYWxzbyBhIGZhc3QgU01DIGNhbGwsIGxpa2UgT1BURUVfU01DX1ZNX0NSRUFURUQs IHNvCkBAIC0zMjgsNiArNDIxLDcgQEAgc3RhdGljIGludCBvcHRlZV9yZWxpbnF1aXNoX3Jlc291 cmNlcyhzdHJ1Y3QgZG9tYWluICpkKQogCiAgICAgQVNTRVJUKCFzcGluX2lzX2xvY2tlZCgmY3R4 LT5sb2NrKSk7CiAgICAgQVNTRVJUKCFhdG9taWNfcmVhZCgmY3R4LT5jYWxsX2NvdW50KSk7Cisg ICAgQVNTRVJUKGxpc3RfZW1wdHkoJmN0eC0+c2htX3JwY19saXN0KSk7CiAKICAgICBYRlJFRShk LT5hcmNoLnRlZSk7CiAKQEAgLTU4Nyw2ICs2ODEsNDggQEAgZXJyOgogICogcmVxdWVzdCBmcm9t IE9QLVRFRSBhbmQgd2lzaGVkIHRvIHJlc3VtZSB0aGUgaW50ZXJydXB0ZWQgc3RhbmRhcmQKICAq IGNhbGwuCiAgKi8KK3N0YXRpYyB2b2lkIGhhbmRsZV9ycGNfZnVuY19hbGxvYyhzdHJ1Y3Qgb3B0 ZWVfZG9tYWluICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IG9wdGVlX3N0ZF9jYWxsICpjYWxsKQoreworICAgIHN0cnVjdCBzaG1fcnBjICpzaG1f cnBjOworICAgIHJlZ2lzdGVyX3QgcjEsIHIyOworICAgIHBhZGRyX3QgcHRyID0gcmVncGFpcl90 b191aW50NjQoZ2V0X3VzZXJfcmVnKHJlZ3MsIDEpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2V0X3VzZXJfcmVnKHJlZ3MsIDIpKTsKKyAgICB1aW50NjRfdCBjb29raWUg PSByZWdwYWlyX3RvX3VpbnQ2NChnZXRfdXNlcl9yZWcocmVncywgNCksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X3VzZXJfcmVnKHJlZ3MsIDUpKTsKKworICAg IGlmICggcHRyICYgKE9QVEVFX01TR19OT05DT05USUdfUEFHRV9TSVpFIC0gMSkgKQorICAgIHsK KyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJEb21haW4gcmV0dXJuZWQgaW52YWxp ZCBSUEMgY29tbWFuZCBidWZmZXJcbiIpOworICAgICAgICAvKgorICAgICAgICAgKiBPUC1URUUg aXMgd2FpdGluZyBmb3IgYSByZXNwb25zZSB0byB0aGUgUlBDLiBXZSBjYW4ndCBqdXN0CisgICAg ICAgICAqIHJldHVybiBlcnJvciB0byB0aGUgZ3Vlc3QuIFdlIG5lZWQgdG8gcHJvdmlkZSBzb21l IGludmFsaWQKKyAgICAgICAgICogdmFsdWUgdG8gT1AtVEVFLCBzbyBpdCBjYW4gaGFuZGxlIGVy cm9yIG9uIGl0cyBzaWRlLgorICAgICAgICAgKi8KKyAgICAgICAgcHRyID0gMDsKKyAgICAgICAg Z290byBvdXQ7CisgICAgfQorCisgICAgc2htX3JwYyA9IGFsbG9jYXRlX2FuZF9waW5fc2htX3Jw YyhjdHgsIGdhZGRyX3RvX2dmbihwdHIpLCBjb29raWUpOworICAgIGlmICggSVNfRVJSKHNobV9y cGMpICkKKyAgICB7CisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiRmFpbGVkIHRv IGFsbG9jYXRlIHNobV9ycGMgb2JqZWN0OiAlbGRcbiIsCisgICAgICAgICAgICAgICAgIFBUUl9F UlIoc2htX3JwYykpOworICAgICAgICBwdHIgPSAwOworICAgIH0KKyAgICBlbHNlCisgICAgICAg IHB0ciA9IHBhZ2VfdG9fbWFkZHIoc2htX3JwYy0+Z3Vlc3RfcGFnZSk7CisKK291dDoKKyAgICB1 aW50NjRfdG9fcmVncGFpcigmcjEsICZyMiwgcHRyKTsKKworICAgIGRvX2NhbGxfd2l0aF9hcmco Y3R4LCBjYWxsLCByZWdzLCBPUFRFRV9TTUNfQ0FMTF9SRVRVUk5fRlJPTV9SUEMsIHIxLCByMiwK KyAgICAgICAgICAgICAgICAgICAgIGdldF91c2VyX3JlZyhyZWdzLCAzKSwKKyAgICAgICAgICAg ICAgICAgICAgIGdldF91c2VyX3JlZyhyZWdzLCA0KSwKKyAgICAgICAgICAgICAgICAgICAgIGdl dF91c2VyX3JlZyhyZWdzLCA1KSk7Cit9CisKIHN0YXRpYyB2b2lkIGhhbmRsZV9ycGMoc3RydWN0 IG9wdGVlX2RvbWFpbiAqY3R4LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICBz dHJ1Y3Qgb3B0ZWVfc3RkX2NhbGwgKmNhbGw7CkBAIC02MTAsMTEgKzc0NiwxNSBAQCBzdGF0aWMg dm9pZCBoYW5kbGVfcnBjKHN0cnVjdCBvcHRlZV9kb21haW4gKmN0eCwgc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MpCiAgICAgc3dpdGNoICggY2FsbC0+cnBjX29wICkKICAgICB7CiAgICAgY2Fz ZSBPUFRFRV9TTUNfUlBDX0ZVTkNfQUxMT0M6Ci0gICAgICAgIC8qIFRPRE86IEFkZCBoYW5kbGlu ZyAqLwotICAgICAgICBicmVhazsKKyAgICAgICAgaGFuZGxlX3JwY19mdW5jX2FsbG9jKGN0eCwg cmVncywgY2FsbCk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIE9QVEVFX1NNQ19SUENfRlVO Q19GUkVFOgotICAgICAgICAvKiBUT0RPOiBBZGQgaGFuZGxpbmcgKi8KKyAgICB7CisgICAgICAg IHVpbnQ2NF90IGNvb2tpZSA9IHJlZ3BhaXJfdG9fdWludDY0KGNhbGwtPnJwY19wYXJhbXNbMF0s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwtPnJwY19w YXJhbXNbMV0pOworICAgICAgICBmcmVlX3NobV9ycGMoY3R4LCBjb29raWUpOwogICAgICAgICBi cmVhazsKKyAgICB9CiAgICAgY2FzZSBPUFRFRV9TTUNfUlBDX0ZVTkNfRk9SRUlHTl9JTlRSOgog ICAgICAgICBicmVhazsKICAgICBjYXNlIE9QVEVFX1NNQ19SUENfRlVOQ19DTUQ6CkBAIC03MjAs NiArODYwLDcgQEAgc3RhdGljIGJvb2wgb3B0ZWVfaGFuZGxlX2NhbGwoc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MpCiAgICAgICAgICAgICAgICAgICAgICAgT1BURUVfQ0xJRU5UX0lEKGN1cnJl bnQtPmRvbWFpbiksICZyZXNwKTsKICAgICAgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDAsIHJlc3Au YTApOwogICAgICAgICBpZiAoIHJlc3AuYTAgPT0gT1BURUVfU01DX1JFVFVSTl9PSyApIHsKKyAg ICAgICAgICAgIGZyZWVfc2htX3JwYyhjdHgsICByZWdwYWlyX3RvX3VpbnQ2NChyZXNwLmExLCBy ZXNwLmEyKSk7CiAgICAgICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMSwgcmVzcC5hMSk7CiAg ICAgICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMiwgcmVzcC5hMik7CiAgICAgICAgIH0KLS0g CjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== 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 640D0C072B5 for ; Tue, 21 May 2019 21:26:23 +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 2BE9F2173E for ; Tue, 21 May 2019 21:26:23 +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="S83lE1gb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2BE9F2173E 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 1hTCGx-0008Jg-GW; Tue, 21 May 2019 21:26:11 +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 1hTCGw-0008Im-3Q for xen-devel@lists.xenproject.org; Tue, 21 May 2019 21:26:10 +0000 X-Inumbo-ID: 0b6f62f2-7c0f-11e9-a5b1-ffe046f5e668 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (unknown [40.107.6.64]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 0b6f62f2-7c0f-11e9-a5b1-ffe046f5e668; Tue, 21 May 2019 21:26:07 +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=E99IeKFTeNZsWGy49mjVrouix5e5qPT7szY4jcQ940M=; b=S83lE1gbe6R71DVPl15mMX0/BjZXw8ygf9DP9E8Xk7jYuNC3XYP7lBuhTXvBtzgwET9yUV9O7Z2iekaMH7jsgkCHwv1bebi0ELuQjuujwrGiyDjtFVFoogeivpO64BDxjKtgg1h6vShBGBubq6+FgtmwjJS11dTl5hqu9IsgRLZHR4z9LHZFrtJvv4b3ei6KTUSCN1sMO7N/RCxL+cv85pJ0rQmU4kEXJ+Zq/jW/9bVuNl0k5ZmueV8iZL5hufBJVxAo3Qr9ruQ6HyUPydTQzPpuQX8JYGvME2OwBNPCtReK456uaPuv3Uy3LQWAEA3YsPGlaE5vEzsiSBCwJOlRPQ== 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:05 +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:05 +0000 From: Volodymyr Babchuk To: "xen-devel@lists.xenproject.org" Thread-Topic: [PATCH v5 06/10] xen/arm: optee: add support for RPC SHM buffers Thread-Index: AQHVEBvMDSPWy7l6v0m6qxmKWo4AHw== Date: Tue, 21 May 2019 21:26:05 +0000 Message-ID: <20190521212530.12706-7-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: cf1d3ae9-2120-411f-055f-08d6de32eeda 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:2201; x-forefront-prvs: 0044C17179 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(136003)(366004)(346002)(396003)(39860400002)(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)(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: fJQiUceXXZmvKbjSF+Ns9m2N8zKqhlg7O34st7W/bgGYjD/ZE9zg+no/18J9a/aUHgp5RWZkZYXLndXwyhrJpJgWnmWUOTx4fetV2ZO5oHjuRVJZFM1SBg4gQ1g8tRn430bR9jUp5Ot0YSJwjXseg6Ix+bKjj2nLPlaOPOdNA44umnojXi5k2o/eNVcxGjD1EOQETxiC/DB5C24Rz5d8puEgbTmYyePTWTArs3Bx6FUedtSssYlSliIVkpvatFxDf0spH8+TrJe7xO5QhTJCAUVwHchWvUo53iordgavs+TyQvLmH/9ToKH6L3ykRLFUKhMFJSR+Ot9ZkV1Dr1DTqfnOiUuHROnWXlx3kQiZaZqBnyupDJ98ekTAX915oeYT2AEOyEyHjvr3JzRts3wCsMBw9SolDTiyv9zlW7pUPU8= MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf1d3ae9-2120-411f-055f-08d6de32eeda X-MS-Exchange-CrossTenant-originalarrivaltime: 21 May 2019 21:26:05.5751 (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 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" Message-ID: <20190521212605.NFfl2nt5s4IgCPqeseltaocNIxhUB2h3J1YielMkpWM@z> 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 YWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4KCi0tLQoKIEFsbCB0aGUgcGF0Y2hl cyB0byBvcHRlZS5jIHNob3VsZCBiZSBtZXJnZWQgdG9nZXRoZXIuIFRoZXkgd2VyZQogc3BsaXQg dG8gZWFzZSB1cCByZXZpZXcuIEJ1dCB0aGV5IGRlcGVuZCBoZWF2aWx5IG9uIGVhY2ggb3RoZXIu CgogQ2hhbmdlcyBmcm9tIHY0OgogIC0gaGFuZGxlX3JwY19mdW5jX2FsbG9jKCkgbm93IGNhbGxz IGRvX2NhbGxfd2l0aF9hcmcoKSBkaXJlY3RseQoKIENoYW5nZXMgZnJvbSB2MzoKICAtIFJlbW92 ZWQgTUFYX1JQQ19TSE1TIGNvbnN0YW50LiBOb3cgdGhpcyB2YWx1ZSBkZXBlbmRzIG9uCiAgICBu dW1iZXIgb2YgT1AtVEVFIHRocmVhZHMKICAtIFZhcmlvdXMgZm9ybWF0dGluZyBmaXhlcwogIC0g QWRkZWQgY2hlY2tzIGZvciBndWVzdCBtZW1vcnkgdHlwZQoKIENoYW5nZXMgZnJvbSB2MjoKICAt IEFkZGVkIGNoZWNrIHRvIGVuc3VyZSB0aGF0IGd1ZXN0cyBkb2VzIG5vdCByZXR1cm4gdHdvIFNI TSBidWZmZXJzCiAgICB3aXRoIHRoZSBzYW1lIGNvb2tpZQogIC0gRml4ZWQgY29kaW5nIHN0eWxl CiAgLSBTdG9yaW5nIFJQQyBwYXJhbWV0ZXJzIGR1cmluZyBSUEMgcmV0dXJuIHRvIG1ha2Ugc3Vy ZSwgdGhhdCBndWVzdAogICAgd2lsbCBub3QgY2hhbmdlIHRoZW0gZHVyaW5nIGNhbGwgY29udGlu dWF0aW9uCi0tLQogeGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5jIHwgMTQ5ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25z KCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvb3B0ZWUu YyBiL3hlbi9hcmNoL2FybS90ZWUvb3B0ZWUuYwppbmRleCBmMDkyNDkyODQ5Li4xNzU3ODlmYjAw IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdGVlL29wdGVlLmMKKysrIGIveGVuL2FyY2gvYXJt L3RlZS9vcHRlZS5jCkBAIC04MSw5ICs4MSwxNyBAQCBzdHJ1Y3Qgb3B0ZWVfc3RkX2NhbGwgewog ICAgIHJlZ2lzdGVyX3QgcnBjX3BhcmFtc1syXTsKIH07CiAKKy8qIFByZS1hbGxvY2F0ZWQgU0hN IGJ1ZmZlciBmb3IgUlBDIGNvbW1hbmRzICovCitzdHJ1Y3Qgc2htX3JwYyB7CisgICAgc3RydWN0 IGxpc3RfaGVhZCBsaXN0OworICAgIHN0cnVjdCBwYWdlX2luZm8gKmd1ZXN0X3BhZ2U7CisgICAg dWludDY0X3QgY29va2llOworfTsKKwogLyogRG9tYWluIGNvbnRleHQgKi8KIHN0cnVjdCBvcHRl ZV9kb21haW4gewogICAgIHN0cnVjdCBsaXN0X2hlYWQgY2FsbF9saXN0OworICAgIHN0cnVjdCBs aXN0X2hlYWQgc2htX3JwY19saXN0OwogICAgIGF0b21pY190IGNhbGxfY291bnQ7CiAgICAgc3Bp bmxvY2tfdCBsb2NrOwogfTsKQEAgLTE1OCw2ICsxNjYsNyBAQCBzdGF0aWMgaW50IG9wdGVlX2Rv bWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgfQogCiAgICAgSU5JVF9MSVNUX0hFQUQo JmN0eC0+Y2FsbF9saXN0KTsKKyAgICBJTklUX0xJU1RfSEVBRCgmY3R4LT5zaG1fcnBjX2xpc3Qp OwogICAgIGF0b21pY19zZXQoJmN0eC0+Y2FsbF9jb3VudCwgMCk7CiAgICAgc3Bpbl9sb2NrX2lu aXQoJmN0eC0+bG9jayk7CiAKQEAgLTE5OSw3ICsyMDgsMTEgQEAgc3RhdGljIHN0cnVjdCBvcHRl ZV9zdGRfY2FsbCAqYWxsb2NhdGVfc3RkX2NhbGwoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4KQog ICAgIHN0cnVjdCBvcHRlZV9zdGRfY2FsbCAqY2FsbDsKICAgICBpbnQgY291bnQ7CiAKLSAgICAv KiBNYWtlIHN1cmUgdGhhdCBndWVzdCBkb2VzIG5vdCBleGVjdXRlIG1vcmUgdGhhbiBtYXhfb3B0 ZWVfdGhyZWFkcyAqLworICAgIC8qCisgICAgICogTWFrZSBzdXJlIHRoYXQgZ3Vlc3QgZG9lcyBu b3QgZXhlY3V0ZSBtb3JlIHRoYW4gbWF4X29wdGVlX3RocmVhZHMuCisgICAgICogVGhpcyBhbHNv IGluZGlyZWN0bHkgbGltaXRzIG51bWJlciBvZiBSUEMgU0hNIGJ1ZmZlcnMsIGJlY2F1c2UgT1At VEVFCisgICAgICogYWxsb2NhdGVzIG9uZSBzdWNoIGJ1ZmZlciBwZXIgc3RhbmRhcmQgY2FsbC4K KyAgICAgKi8KICAgICBjb3VudCA9IGF0b21pY19hZGRfdW5sZXNzKCZjdHgtPmNhbGxfY291bnQs IDEsIG1heF9vcHRlZV90aHJlYWRzKTsKICAgICBpZiAoIGNvdW50ID09IG1heF9vcHRlZV90aHJl YWRzICkKICAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT1NQQyk7CkBAIC0yOTQsMTAgKzMwNyw4 MCBAQCBzdGF0aWMgdm9pZCBwdXRfc3RkX2NhbGwoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4LCBz dHJ1Y3Qgb3B0ZWVfc3RkX2NhbGwgKmNhbGwpCiAgICAgc3Bpbl91bmxvY2soJmN0eC0+bG9jayk7 CiB9CiAKK3N0YXRpYyBzdHJ1Y3Qgc2htX3JwYyAqYWxsb2NhdGVfYW5kX3Bpbl9zaG1fcnBjKHN0 cnVjdCBvcHRlZV9kb21haW4gKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdmbl90IGdmbiwgdWludDY0X3QgY29va2llKQoreworICAgIHN0cnVj dCBzaG1fcnBjICpzaG1fcnBjLCAqc2htX3JwY190bXA7CisKKyAgICBzaG1fcnBjID0geHphbGxv YyhzdHJ1Y3Qgc2htX3JwYyk7CisgICAgaWYgKCAhc2htX3JwYyApCisgICAgICAgIHJldHVybiBF UlJfUFRSKC1FTk9NRU0pOworCisgICAgLyogVGhpcyBwYWdlIHdpbGwgYmUgc2hhcmVkIHdpdGgg T1AtVEVFLCBzbyB3ZSBuZWVkIHRvIHBpbiBpdC4gKi8KKyAgICBzaG1fcnBjLT5ndWVzdF9wYWdl ID0gZ2V0X2RvbWFpbl9yYW1fcGFnZShnZm4pOworICAgIGlmICggIXNobV9ycGMtPmd1ZXN0X3Bh Z2UgKQorICAgICAgICBnb3RvIGVycjsKKworICAgIHNobV9ycGMtPmNvb2tpZSA9IGNvb2tpZTsK KworICAgIHNwaW5fbG9jaygmY3R4LT5sb2NrKTsKKyAgICAvKiBDaGVjayBpZiB0aGVyZSBpcyBl eGlzdGluZyBTSE0gd2l0aCB0aGUgc2FtZSBjb29raWUuICovCisgICAgbGlzdF9mb3JfZWFjaF9l bnRyeSggc2htX3JwY190bXAsICZjdHgtPnNobV9ycGNfbGlzdCwgbGlzdCApCisgICAgeworICAg ICAgICBpZiAoIHNobV9ycGNfdG1wLT5jb29raWUgPT0gY29va2llICkKKyAgICAgICAgeworICAg ICAgICAgICAgc3Bpbl91bmxvY2soJmN0eC0+bG9jayk7CisgICAgICAgICAgICBnZHByaW50ayhY RU5MT0dfV0FSTklORywgIkd1ZXN0IHRyaWVzIHRvIHVzZSB0aGUgc2FtZSBSUEMgU0hNIGNvb2tp ZSAlbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICBjb29raWUpOworICAgICAgICAgICAgZ290 byBlcnI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsaXN0X2FkZF90YWlsKCZzaG1fcnBjLT5s aXN0LCAmY3R4LT5zaG1fcnBjX2xpc3QpOworICAgIHNwaW5fdW5sb2NrKCZjdHgtPmxvY2spOwor CisgICAgcmV0dXJuIHNobV9ycGM7CisKK2VycjoKKyAgICBpZiAoIHNobV9ycGMtPmd1ZXN0X3Bh Z2UgKQorICAgICAgICBwdXRfcGFnZShzaG1fcnBjLT5ndWVzdF9wYWdlKTsKKyAgICB4ZnJlZShz aG1fcnBjKTsKKworICAgIHJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworfQorCitzdGF0aWMgdm9p ZCBmcmVlX3NobV9ycGMoc3RydWN0IG9wdGVlX2RvbWFpbiAqY3R4LCB1aW50NjRfdCBjb29raWUp Cit7CisgICAgc3RydWN0IHNobV9ycGMgKnNobV9ycGM7CisgICAgYm9vbCBmb3VuZCA9IGZhbHNl OworCisgICAgc3Bpbl9sb2NrKCZjdHgtPmxvY2spOworCisgICAgbGlzdF9mb3JfZWFjaF9lbnRy eSggc2htX3JwYywgJmN0eC0+c2htX3JwY19saXN0LCBsaXN0ICkKKyAgICB7CisgICAgICAgIGlm ICggc2htX3JwYy0+Y29va2llID09IGNvb2tpZSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZv dW5kID0gdHJ1ZTsKKyAgICAgICAgICAgIGxpc3RfZGVsKCZzaG1fcnBjLT5saXN0KTsKKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHNwaW5fdW5sb2NrKCZjdHgtPmxv Y2spOworCisgICAgaWYgKCAhZm91bmQgKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQo c2htX3JwYy0+Z3Vlc3RfcGFnZSk7CisgICAgcHV0X3BhZ2Uoc2htX3JwYy0+Z3Vlc3RfcGFnZSk7 CisKKyAgICB4ZnJlZShzaG1fcnBjKTsKK30KKwogc3RhdGljIGludCBvcHRlZV9yZWxpbnF1aXNo X3Jlc291cmNlcyhzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIHN0cnVjdCBhcm1fc21jY2NfcmVz IHJlc3A7CiAgICAgc3RydWN0IG9wdGVlX3N0ZF9jYWxsICpjYWxsLCAqY2FsbF90bXA7CisgICAg c3RydWN0IHNobV9ycGMgKnNobV9ycGMsICpzaG1fcnBjX3RtcDsKICAgICBzdHJ1Y3Qgb3B0ZWVf ZG9tYWluICpjdHggPSBkLT5hcmNoLnRlZTsKIAogICAgIGlmICggIWN0eCApCkBAIC0zMTQsNiAr Mzk3LDE2IEBAIHN0YXRpYyBpbnQgb3B0ZWVfcmVsaW5xdWlzaF9yZXNvdXJjZXMoc3RydWN0IGRv bWFpbiAqZCkKICAgICBpZiAoIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQogICAgICAgICBy ZXR1cm4gLUVSRVNUQVJUOwogCisgICAgLyoKKyAgICAgKiBOdW1iZXIgb2YgdGhpcyBidWZmZXJz IGFsc28gZGVwZW5kcyBvbiBtYXhfb3B0ZWVfdGhyZWFkcywgc28KKyAgICAgKiBjaGVjayB0aGUg Y29tbWVudCBhYm92ZS4KKyAgICAgKi8KKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoIHNo bV9ycGMsIHNobV9ycGNfdG1wLCAmY3R4LT5zaG1fcnBjX2xpc3QsIGxpc3QgKQorICAgICAgICBm cmVlX3NobV9ycGMoY3R4LCBzaG1fcnBjLT5jb29raWUpOworCisgICAgaWYgKCBoeXBlcmNhbGxf cHJlZW1wdF9jaGVjaygpICkKKyAgICAgICAgcmV0dXJuIC1FUkVTVEFSVDsKKwogICAgIC8qCiAg ICAgICogSW5mb3JtIE9QLVRFRSB0aGF0IGRvbWFpbiBpcyBzaHV0dGluZyBkb3duLiBUaGlzIGlz CiAgICAgICogYWxzbyBhIGZhc3QgU01DIGNhbGwsIGxpa2UgT1BURUVfU01DX1ZNX0NSRUFURUQs IHNvCkBAIC0zMjgsNiArNDIxLDcgQEAgc3RhdGljIGludCBvcHRlZV9yZWxpbnF1aXNoX3Jlc291 cmNlcyhzdHJ1Y3QgZG9tYWluICpkKQogCiAgICAgQVNTRVJUKCFzcGluX2lzX2xvY2tlZCgmY3R4 LT5sb2NrKSk7CiAgICAgQVNTRVJUKCFhdG9taWNfcmVhZCgmY3R4LT5jYWxsX2NvdW50KSk7Cisg ICAgQVNTRVJUKGxpc3RfZW1wdHkoJmN0eC0+c2htX3JwY19saXN0KSk7CiAKICAgICBYRlJFRShk LT5hcmNoLnRlZSk7CiAKQEAgLTU4Nyw2ICs2ODEsNDggQEAgZXJyOgogICogcmVxdWVzdCBmcm9t IE9QLVRFRSBhbmQgd2lzaGVkIHRvIHJlc3VtZSB0aGUgaW50ZXJydXB0ZWQgc3RhbmRhcmQKICAq IGNhbGwuCiAgKi8KK3N0YXRpYyB2b2lkIGhhbmRsZV9ycGNfZnVuY19hbGxvYyhzdHJ1Y3Qgb3B0 ZWVfZG9tYWluICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IG9wdGVlX3N0ZF9jYWxsICpjYWxsKQoreworICAgIHN0cnVjdCBzaG1fcnBjICpzaG1f cnBjOworICAgIHJlZ2lzdGVyX3QgcjEsIHIyOworICAgIHBhZGRyX3QgcHRyID0gcmVncGFpcl90 b191aW50NjQoZ2V0X3VzZXJfcmVnKHJlZ3MsIDEpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2V0X3VzZXJfcmVnKHJlZ3MsIDIpKTsKKyAgICB1aW50NjRfdCBjb29raWUg PSByZWdwYWlyX3RvX3VpbnQ2NChnZXRfdXNlcl9yZWcocmVncywgNCksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X3VzZXJfcmVnKHJlZ3MsIDUpKTsKKworICAg IGlmICggcHRyICYgKE9QVEVFX01TR19OT05DT05USUdfUEFHRV9TSVpFIC0gMSkgKQorICAgIHsK KyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJEb21haW4gcmV0dXJuZWQgaW52YWxp ZCBSUEMgY29tbWFuZCBidWZmZXJcbiIpOworICAgICAgICAvKgorICAgICAgICAgKiBPUC1URUUg aXMgd2FpdGluZyBmb3IgYSByZXNwb25zZSB0byB0aGUgUlBDLiBXZSBjYW4ndCBqdXN0CisgICAg ICAgICAqIHJldHVybiBlcnJvciB0byB0aGUgZ3Vlc3QuIFdlIG5lZWQgdG8gcHJvdmlkZSBzb21l IGludmFsaWQKKyAgICAgICAgICogdmFsdWUgdG8gT1AtVEVFLCBzbyBpdCBjYW4gaGFuZGxlIGVy cm9yIG9uIGl0cyBzaWRlLgorICAgICAgICAgKi8KKyAgICAgICAgcHRyID0gMDsKKyAgICAgICAg Z290byBvdXQ7CisgICAgfQorCisgICAgc2htX3JwYyA9IGFsbG9jYXRlX2FuZF9waW5fc2htX3Jw YyhjdHgsIGdhZGRyX3RvX2dmbihwdHIpLCBjb29raWUpOworICAgIGlmICggSVNfRVJSKHNobV9y cGMpICkKKyAgICB7CisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiRmFpbGVkIHRv IGFsbG9jYXRlIHNobV9ycGMgb2JqZWN0OiAlbGRcbiIsCisgICAgICAgICAgICAgICAgIFBUUl9F UlIoc2htX3JwYykpOworICAgICAgICBwdHIgPSAwOworICAgIH0KKyAgICBlbHNlCisgICAgICAg IHB0ciA9IHBhZ2VfdG9fbWFkZHIoc2htX3JwYy0+Z3Vlc3RfcGFnZSk7CisKK291dDoKKyAgICB1 aW50NjRfdG9fcmVncGFpcigmcjEsICZyMiwgcHRyKTsKKworICAgIGRvX2NhbGxfd2l0aF9hcmco Y3R4LCBjYWxsLCByZWdzLCBPUFRFRV9TTUNfQ0FMTF9SRVRVUk5fRlJPTV9SUEMsIHIxLCByMiwK KyAgICAgICAgICAgICAgICAgICAgIGdldF91c2VyX3JlZyhyZWdzLCAzKSwKKyAgICAgICAgICAg ICAgICAgICAgIGdldF91c2VyX3JlZyhyZWdzLCA0KSwKKyAgICAgICAgICAgICAgICAgICAgIGdl dF91c2VyX3JlZyhyZWdzLCA1KSk7Cit9CisKIHN0YXRpYyB2b2lkIGhhbmRsZV9ycGMoc3RydWN0 IG9wdGVlX2RvbWFpbiAqY3R4LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICBz dHJ1Y3Qgb3B0ZWVfc3RkX2NhbGwgKmNhbGw7CkBAIC02MTAsMTEgKzc0NiwxNSBAQCBzdGF0aWMg dm9pZCBoYW5kbGVfcnBjKHN0cnVjdCBvcHRlZV9kb21haW4gKmN0eCwgc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MpCiAgICAgc3dpdGNoICggY2FsbC0+cnBjX29wICkKICAgICB7CiAgICAgY2Fz ZSBPUFRFRV9TTUNfUlBDX0ZVTkNfQUxMT0M6Ci0gICAgICAgIC8qIFRPRE86IEFkZCBoYW5kbGlu ZyAqLwotICAgICAgICBicmVhazsKKyAgICAgICAgaGFuZGxlX3JwY19mdW5jX2FsbG9jKGN0eCwg cmVncywgY2FsbCk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIE9QVEVFX1NNQ19SUENfRlVO Q19GUkVFOgotICAgICAgICAvKiBUT0RPOiBBZGQgaGFuZGxpbmcgKi8KKyAgICB7CisgICAgICAg IHVpbnQ2NF90IGNvb2tpZSA9IHJlZ3BhaXJfdG9fdWludDY0KGNhbGwtPnJwY19wYXJhbXNbMF0s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwtPnJwY19w YXJhbXNbMV0pOworICAgICAgICBmcmVlX3NobV9ycGMoY3R4LCBjb29raWUpOwogICAgICAgICBi cmVhazsKKyAgICB9CiAgICAgY2FzZSBPUFRFRV9TTUNfUlBDX0ZVTkNfRk9SRUlHTl9JTlRSOgog ICAgICAgICBicmVhazsKICAgICBjYXNlIE9QVEVFX1NNQ19SUENfRlVOQ19DTUQ6CkBAIC03MjAs NiArODYwLDcgQEAgc3RhdGljIGJvb2wgb3B0ZWVfaGFuZGxlX2NhbGwoc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MpCiAgICAgICAgICAgICAgICAgICAgICAgT1BURUVfQ0xJRU5UX0lEKGN1cnJl bnQtPmRvbWFpbiksICZyZXNwKTsKICAgICAgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDAsIHJlc3Au YTApOwogICAgICAgICBpZiAoIHJlc3AuYTAgPT0gT1BURUVfU01DX1JFVFVSTl9PSyApIHsKKyAg ICAgICAgICAgIGZyZWVfc2htX3JwYyhjdHgsICByZWdwYWlyX3RvX3VpbnQ2NChyZXNwLmExLCBy ZXNwLmEyKSk7CiAgICAgICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMSwgcmVzcC5hMSk7CiAg ICAgICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMiwgcmVzcC5hMik7CiAgICAgICAgIH0KLS0g CjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==