From mboxrd@z Thu Jan 1 00:00:00 1970 From: Volodymyr Babchuk Subject: [PATCH v2 08/13] optee: add support for RPC SHM buffers Date: Mon, 3 Sep 2018 19:54:32 +0300 Message-ID: <1535993677-20816-9-git-send-email-volodymyr_babchuk@epam.com> References: <1535993677-20816-1-git-send-email-volodymyr_babchuk@epam.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fws8k-0006PB-LG for xen-devel@lists.xenproject.org; Mon, 03 Sep 2018 16:55:50 +0000 In-Reply-To: <1535993677-20816-1-git-send-email-volodymyr_babchuk@epam.com> 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, xen-devel@lists.xen.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 IHRocmVhZCBhbmQgaXQgcmVtYWlucyBhbGxvY2F0ZWQgYWxsCnRoZSB0aW1lIHVudGlsIHNodXRk b3duLgoKTWVkaWF0b3IgbmVlZHMgdG8gcGluIHRoaXMgYnVmZmVyKHMpIHRvIG1ha2Ugc3VyZSB0 aGF0IGRvbWFpbiBjYW4ndAp0cmFuc2ZlciBpdCB0byBzb21lb25lIGVsc2UuIEFsc28gaXQgc2hv dWxkIGJlIG1hcHBlZCBpbnRvIFhFTgphZGRyZXNzIHNwYWNlLCBiZWNhdXNlIG1lZGlhdG9yIG5l ZWRzIHRvIGNoZWNrIHJlc3BvbnNlcyBmcm9tCmd1ZXN0cy4KClNpZ25lZC1vZmYtYnk6IFZvbG9k eW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4KLS0tCiB4ZW4vYXJjaC9h cm0vdGVlL29wdGVlLmMgfCAxMjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMTkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL29wdGVlLmMgYi94ZW4vYXJjaC9h cm0vdGVlL29wdGVlLmMKaW5kZXggMTAwOGViYS4uNmQ2YjUxZCAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gvYXJtL3RlZS9vcHRlZS5jCisrKyBiL3hlbi9hcmNoL2FybS90ZWUvb3B0ZWUuYwpAQCAtMjEs NiArMjEsNyBAQAogI2luY2x1ZGUgPGFzbS90ZWUvb3B0ZWVfc21jLmg+CiAKICNkZWZpbmUgTUFY X1NURF9DQUxMUyAgIDE2CisjZGVmaW5lIE1BWF9SUENfU0hNUyAgICAxNgogCiAvKgogICogQ2Fs bCBjb250ZXh0LiBPUC1URUUgY2FuIGlzc3VlIG11bHRpcGxlIFJQQyByZXR1cm5zIGR1cmluZyBv bmUgY2FsbC4KQEAgLTM1LDExICszNiwyMiBAQCBzdHJ1Y3Qgc3RkX2NhbGxfY3R4IHsKICAgICBp bnQgcnBjX29wOwogfTsKIAorLyogUHJlLWFsbG9jYXRlZCBTSE0gYnVmZmVyIGZvciBSUEMgY29t bWFuZHMgKi8KK3N0cnVjdCBzaG1fcnBjIHsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cisg ICAgc3RydWN0IG9wdGVlX21zZ19hcmcgKmd1ZXN0X2FyZzsKKyAgICBzdHJ1Y3QgcGFnZSAqZ3Vl c3RfcGFnZTsKKyAgICBtZm5fdCBndWVzdF9tZm47CisgICAgdWludDY0X3QgY29va2llOworfTsK Kwogc3RydWN0IGRvbWFpbl9jdHggewogICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKICAgICBz dHJ1Y3QgbGlzdF9oZWFkIGNhbGxfY3R4X2xpc3Q7CisgICAgc3RydWN0IGxpc3RfaGVhZCBzaG1f cnBjX2xpc3Q7CiAgICAgc3RydWN0IGRvbWFpbiAqZG9tYWluOwogICAgIGF0b21pY190IGNhbGxf Y3R4X2NvdW50OworICAgIGF0b21pY190IHNobV9ycGNfY291bnQ7CiAgICAgc3BpbmxvY2tfdCBs b2NrOwogfTsKIApAQCAtMTQ1LDggKzE1NywxMCBAQCBzdGF0aWMgaW50IG9wdGVlX2VuYWJsZShz dHJ1Y3QgZG9tYWluICpkKQogCiAgICAgY3R4LT5kb21haW4gPSBkOwogICAgIElOSVRfTElTVF9I RUFEKCZjdHgtPmNhbGxfY3R4X2xpc3QpOworICAgIElOSVRfTElTVF9IRUFEKCZjdHgtPnNobV9y cGNfbGlzdCk7CiAKICAgICBhdG9taWNfc2V0KCZjdHgtPmNhbGxfY3R4X2NvdW50LCAwKTsKKyAg ICBhdG9taWNfc2V0KCZjdHgtPnNobV9ycGNfY291bnQsIDApOwogICAgIHNwaW5fbG9ja19pbml0 KCZjdHgtPmxvY2spOwogCiAgICAgc3Bpbl9sb2NrKCZkb21haW5fY3R4X2xpc3RfbG9jayk7CkBA IC0yNTYsMTEgKzI3MCw4MSBAQCBzdGF0aWMgc3RydWN0IHN0ZF9jYWxsX2N0eCAqZmluZF9jYWxs X2N0eChzdHJ1Y3QgZG9tYWluX2N0eCAqY3R4LCBpbnQgdGhyZWFkX2lkKQogICAgIHJldHVybiBO VUxMOwogfQogCitzdGF0aWMgc3RydWN0IHNobV9ycGMgKmFsbG9jYXRlX2FuZF9tYXBfc2htX3Jw YyhzdHJ1Y3QgZG9tYWluX2N0eCAqY3R4LCBwYWRkcl90IGdhZGRyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNvb2tpZSkKK3sKKyAgICBzdHJ1Y3Qg c2htX3JwYyAqc2htX3JwYzsKKyAgICBpbnQgY291bnQ7CisKKyAgICBjb3VudCA9IGF0b21pY19h ZGRfdW5sZXNzKCZjdHgtPnNobV9ycGNfY291bnQsIDEsIE1BWF9SUENfU0hNUyk7CisgICAgaWYg KCBjb3VudCA9PSBNQVhfUlBDX1NITVMgKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHNo bV9ycGMgPSB4emFsbG9jKHN0cnVjdCBzaG1fcnBjKTsKKyAgICBpZiAoICFzaG1fcnBjICkKKyAg ICAgICAgZ290byBlcnI7CisKKyAgICBzaG1fcnBjLT5ndWVzdF9tZm4gPSBsb29rdXBfYW5kX3Bp bl9ndWVzdF9yYW1fYWRkcihnYWRkciwgTlVMTCk7CisKKyAgICBpZiAoIG1mbl9lcShzaG1fcnBj LT5ndWVzdF9tZm4sIElOVkFMSURfTUZOKSApCisgICAgICAgIGdvdG8gZXJyOworCisgICAgc2ht X3JwYy0+Z3Vlc3RfYXJnID0gbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChzaG1fcnBjLT5ndWVzdF9t Zm4pOworICAgIGlmICggIXNobV9ycGMtPmd1ZXN0X2FyZyApCisgICAgeworICAgICAgICBncHJp bnRrKFhFTkxPR19JTkZPLCAiQ291bGQgbm90IG1hcCBkb21haW4gcGFnZVxuIik7CisgICAgICAg IGdvdG8gZXJyOworICAgIH0KKyAgICBzaG1fcnBjLT5jb29raWUgPSBjb29raWU7CisKKyAgICBz cGluX2xvY2soJmN0eC0+bG9jayk7CisgICAgbGlzdF9hZGRfdGFpbCgmc2htX3JwYy0+bGlzdCwg JmN0eC0+c2htX3JwY19saXN0KTsKKyAgICBzcGluX3VubG9jaygmY3R4LT5sb2NrKTsKKworICAg IHJldHVybiBzaG1fcnBjOworCitlcnI6CisgICAgYXRvbWljX2RlYygmY3R4LT5zaG1fcnBjX2Nv dW50KTsKKyAgICB4ZnJlZShzaG1fcnBjKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGlj IHZvaWQgZnJlZV9zaG1fcnBjKHN0cnVjdCBkb21haW5fY3R4ICpjdHgsIHVpbnQ2NF90IGNvb2tp ZSkKK3sKKyAgICBzdHJ1Y3Qgc2htX3JwYyAqc2htX3JwYzsKKyAgICBib29sIGZvdW5kID0gZmFs c2U7CisKKyAgICBzcGluX2xvY2soJmN0eC0+bG9jayk7CisKKyAgICBsaXN0X2Zvcl9lYWNoX2Vu dHJ5KCBzaG1fcnBjLCAmY3R4LT5zaG1fcnBjX2xpc3QsIGxpc3QgKQorICAgIHsKKyAgICAgICAg aWYgKCBzaG1fcnBjLT5jb29raWUgPT0gY29va2llICkKKyAgICAgICAgeworICAgICAgICAgICAg Zm91bmQgPSB0cnVlOworICAgICAgICAgICAgbGlzdF9kZWwoJnNobV9ycGMtPmxpc3QpOworICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgc3Bpbl91bmxvY2soJmN0eC0+ bG9jayk7CisKKyAgICBpZiAoICFmb3VuZCApIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor ICAgIGlmICggc2htX3JwYy0+Z3Vlc3RfYXJnICkgeworICAgICAgICB1bnBpbl9ndWVzdF9yYW1f YWRkcihzaG1fcnBjLT5ndWVzdF9tZm4pOworICAgICAgICB1bm1hcF9kb21haW5fcGFnZV9nbG9i YWwoc2htX3JwYy0+Z3Vlc3RfYXJnKTsKKyAgICB9CisKKyAgICB4ZnJlZShzaG1fcnBjKTsKK30K Kwogc3RhdGljIHZvaWQgb3B0ZWVfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKIHsK ICAgICBzdHJ1Y3QgYXJtX3NtY2NjX3JlcyByZXNwOwogICAgIHN0cnVjdCBkb21haW5fY3R4ICpj dHg7CiAgICAgc3RydWN0IHN0ZF9jYWxsX2N0eCAqY2FsbCwgKmNhbGxfdG1wOworICAgIHN0cnVj dCBzaG1fcnBjICpzaG1fcnBjLCAqc2htX3JwY190bXA7CiAgICAgYm9vbCBmb3VuZCA9IGZhbHNl OwogCiAgICAgLyogQXQgdGhpcyB0aW1lIGFsbCBkb21haW4gVkNQVXMgc2hvdWxkIGJlIHN0b3Bw ZWQgKi8KQEAgLTI5MCw3ICszNzQsMTEgQEAgc3RhdGljIHZvaWQgb3B0ZWVfZG9tYWluX2Rlc3Ry b3koc3RydWN0IGRvbWFpbiAqZCkKICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoIGNhbGws IGNhbGxfdG1wLCAmY3R4LT5jYWxsX2N0eF9saXN0LCBsaXN0ICkKICAgICAgICAgZnJlZV9zdGRf Y2FsbF9jdHgoY3R4LCBjYWxsKTsKIAorICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSggc2ht X3JwYywgc2htX3JwY190bXAsICZjdHgtPnNobV9ycGNfbGlzdCwgbGlzdCApCisgICAgICAgIGZy ZWVfc2htX3JwYyhjdHgsIHNobV9ycGMtPmNvb2tpZSk7CisKICAgICBBU1NFUlQoIWF0b21pY19y ZWFkKCZjdHgtPmNhbGxfY3R4X2NvdW50KSk7CisgICAgQVNTRVJUKCFhdG9taWNfcmVhZCgmY3R4 LT5zaG1fcnBjX2NvdW50KSk7CiAKICAgICB4ZnJlZShjdHgpOwogfQpAQCAtNDUyLDYgKzU0MCwz MiBAQCBvdXQ6CiAgICAgcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIHZvaWQgaGFuZGxlX3JwY19m dW5jX2FsbG9jKHN0cnVjdCBkb21haW5fY3R4ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCit7CisgICAgcGFkZHJfdCBw dHIgPSBnZXRfdXNlcl9yZWcocmVncywgMSkgPDwgMzIgfCBnZXRfdXNlcl9yZWcocmVncywgMik7 CisKKyAgICBpZiAoIHB0ciAmIChPUFRFRV9NU0dfTk9OQ09OVElHX1BBR0VfU0laRSAtIDEpICkK KyAgICAgICAgZ3ByaW50ayhYRU5MT0dfV0FSTklORywgIkRvbWFpbiByZXR1cm5lZCBpbnZhbGlk IFJQQyBjb21tYW5kIGJ1ZmZlclxuIik7CisKKyAgICBpZiAoIHB0ciApIHsKKyAgICAgICAgdWlu dDY0X3QgY29va2llID0gZ2V0X3VzZXJfcmVnKHJlZ3MsIDQpIDw8IDMyIHwgZ2V0X3VzZXJfcmVn KHJlZ3MsIDUpOworICAgICAgICBzdHJ1Y3Qgc2htX3JwYyAqc2htX3JwYzsKKworICAgICAgICBz aG1fcnBjID0gYWxsb2NhdGVfYW5kX21hcF9zaG1fcnBjKGN0eCwgcHRyLCBjb29raWUpOworICAg ICAgICBpZiAoICFzaG1fcnBjICkKKyAgICAgICAgeworICAgICAgICAgICAgZ3ByaW50ayhYRU5M T0dfV0FSTklORywgIkZhaWxlZCB0byBhbGxvY2F0ZSBzaG1fcnBjIG9iamVjdFxuIik7CisgICAg ICAgICAgICBwdHIgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHB0 ciA9IG1mbl90b19tYWRkcihzaG1fcnBjLT5ndWVzdF9tZm4pOworCisgICAgICAgIHNldF91c2Vy X3JlZyhyZWdzLCAxLCBwdHIgPj4gMzIpOworICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMiwg cHRyICYgMHhGRkZGRkZGRik7CisgICAgfQorfQorCiBzdGF0aWMgYm9vbCBoYW5kbGVfcnBjKHN0 cnVjdCBkb21haW5fY3R4ICpjdHgsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewogICAg IHN0cnVjdCBzdGRfY2FsbF9jdHggKmNhbGw7CkBAIC00NjUsMTEgKzU3OSwxNCBAQCBzdGF0aWMg Ym9vbCBoYW5kbGVfcnBjKHN0cnVjdCBkb21haW5fY3R4ICpjdHgsIHN0cnVjdCBjcHVfdXNlcl9y ZWdzICpyZWdzKQogCiAgICAgc3dpdGNoICggY2FsbC0+cnBjX29wICkgewogICAgIGNhc2UgT1BU RUVfU01DX1JQQ19GVU5DX0FMTE9DOgotICAgICAgICAvKiBUT0RPOiBBZGQgaGFuZGxpbmcgKi8K KyAgICAgICAgaGFuZGxlX3JwY19mdW5jX2FsbG9jKGN0eCwgcmVncyk7CiAgICAgICAgIGJyZWFr OwogICAgIGNhc2UgT1BURUVfU01DX1JQQ19GVU5DX0ZSRUU6Ci0gICAgICAgIC8qIFRPRE86IEFk ZCBoYW5kbGluZyAqLworICAgIHsKKyAgICAgICAgdWludDY0X3QgY29va2llID0gZ2V0X3VzZXJf cmVnKHJlZ3MsIDEpIDw8IDMyIHwgZ2V0X3VzZXJfcmVnKHJlZ3MsIDIpOworICAgICAgICBmcmVl X3NobV9ycGMoY3R4LCBjb29raWUpOwogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBP UFRFRV9TTUNfUlBDX0ZVTkNfRk9SRUlHTl9JTlRSOgogICAgICAgICBicmVhazsKICAgICBjYXNl IE9QVEVFX1NNQ19SUENfRlVOQ19DTUQ6Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp bG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=