From mboxrd@z Thu Jan 1 00:00:00 1970 From: Volodymyr Babchuk Subject: [PATCH v2 05/13] optee: add fast calls handling Date: Mon, 3 Sep 2018 19:54:29 +0300 Message-ID: <1535993677-20816-6-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 1fws8W-00064b-52 for xen-devel@lists.xenproject.org; Mon, 03 Sep 2018 16:55:36 +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: Julien Grall , Stefano Stabellini , Volodymyr Babchuk List-Id: xen-devel@lists.xenproject.org U29tZSBmYXN0IFNNQ0NDIGNhbGxzIHRvIE9QLVRFRSBzaG91bGQgYmUgaGFuZGxlZCBpbiBhIHNw ZWNpYWwgd2F5LgpDYXBhYmlsaXRpZXMgZXhjaGFuZ2Ugc2hvdWxkIGJlIGZpbHRlcmVkIG91dCwg c28gb25seSBjYXBzCmtub3duIHRvIG1lZGlhdG9yIGFyZSB1c2VkLiBBbHNvIG1lZGlhdG9yIGRp c2FibGVzIHN0YXRpYyBTSE0KbWVtb3J5IGNhcGFiaWxpdHksIGJlY2F1c2UgaXQgY2FuJ3Qgc2hh cmUgT1AtVEVFIG1lbW9yeSB3aXRoIGEgZG9tYWluLgpPbmx5IGRvbWFpbiBjYW4gc2hhcmUgbWVt b3J5IHdpdGggT1AtVEVFLCBzbyBpdCBlbnN1cmVzIHRoYXQgT1AtVEVFCnN1cHBvcnRzIGR5bmFt aWMgU0hNLgoKQmFzaWNhbGx5LCBzdGF0aWMgU0hNIGlzIGEgcmVzZXJ2ZWQgbWVtb3J5IHJlZ2lv biB3aGljaCBpcyBhbHdheXMKbWFwcGVkIGludG8gT1AtVEVFIGFkZHJlc3Mgc3BhY2UuIEl0IGJl bG9uZ3MgdG8gT1AtVEVFLiBOb3JtYWxseSwKTlcgaXMgYWxsb3dlZCB0byBhY2Nlc3MgdGhlcmUs IHNvIGl0IGNhbiBjb21tdW5pY2F0ZSB3aXRoIE9QLVRFRS4KCk9uIG90aGVyIGhhbmQsIGR5bmFt aWMgU0hNIGlzIE5XJ3Mgb3duIG1lbW9yeSwgd2hpY2ggaXQgY2FuIHNoYXJlCndpdGggT1AtVEVF LiBPUC1URUUgbWFwcyB0aGlzIG1lbW9yeSBkeW5hbWljYWxseSwgd2hlbiBpdCB3YW50cyB0bwph Y2Nlc3MgaXQuCgpCZWNhdXNlIG1lZGlhdG9yIGNhbid0IHNoYXJlIG9uZSBzdGF0aWMgU0hNIHJl Z2lvbiB3aXRoIGFsbCBndWVzdHMsCml0IGp1c3QgZGlzYWJsZXMgaXQgZm9yIGFsbC4KClNpZ25l ZC1vZmYtYnk6IFZvbG9keW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4K LS0tCiB4ZW4vYXJjaC9hcm0vdGVlL29wdGVlLmMgfCA1NiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1NSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5j IGIveGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5jCmluZGV4IDdiYjg0ZDkuLjQ4YmZmNWQgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL2FybS90ZWUvb3B0ZWUuYworKysgYi94ZW4vYXJjaC9hcm0vdGVlL29w dGVlLmMKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIGludCBvcHRlZV9lbmFibGUoc3RydWN0IGRv bWFpbiAqZCkKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgZm9yd2FyZF9jYWxsKHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQorc3RhdGljIGJvb2wgZm9yd2FyZF9jYWxsKHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewogICAgIHN0cnVjdCBhcm1fc21jY2NfcmVzIHJlc3A7 CiAKQEAgLTc5LDYgKzc5LDIwIEBAIHN0YXRpYyB2b2lkIGZvcndhcmRfY2FsbChzdHJ1Y3QgY3B1 X3VzZXJfcmVncyAqcmVncykKICAgICBzZXRfdXNlcl9yZWcocmVncywgNSwgMCk7CiAgICAgc2V0 X3VzZXJfcmVnKHJlZ3MsIDYsIDApOwogICAgIHNldF91c2VyX3JlZyhyZWdzLCA3LCAwKTsKKwor ICAgIHJldHVybiByZXNwLmEwID09IE9QVEVFX1NNQ19SRVRVUk5fT0s7Cit9CisKK3N0YXRpYyB2 b2lkIHNldF9yZXR1cm4oc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVpbnQzMl90IHJldCkK K3sKKyAgICBzZXRfdXNlcl9yZWcocmVncywgMCwgcmV0KTsKKyAgICBzZXRfdXNlcl9yZWcocmVn cywgMSwgMCk7CisgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDIsIDApOworICAgIHNldF91c2VyX3Jl ZyhyZWdzLCAzLCAwKTsKKyAgICBzZXRfdXNlcl9yZWcocmVncywgNCwgMCk7CisgICAgc2V0X3Vz ZXJfcmVnKHJlZ3MsIDUsIDApOworICAgIHNldF91c2VyX3JlZyhyZWdzLCA2LCAwKTsKKyAgICBz ZXRfdXNlcl9yZWcocmVncywgNywgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIG9wdGVlX2RvbWFpbl9k ZXN0cm95KHN0cnVjdCBkb21haW4gKmQpCkBAIC05Miw2ICsxMDYsMzkgQEAgc3RhdGljIHZvaWQg b3B0ZWVfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgICAgICAgICAg ICZyZXNwKTsKIH0KIAorc3RhdGljIGJvb2wgaGFuZGxlX2V4Y2hhbmdlX2NhcGFiaWxpdGllcyhz dHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKK3sKKyAgICB1aW50MzJfdCBjYXBzOworCisgICAg LyogRmlsdGVyIG91dCB1bmtub3duIGd1ZXN0IGNhcHMgKi8KKyAgICBjYXBzID0gZ2V0X3VzZXJf cmVnKHJlZ3MsIDEpOworICAgIGNhcHMgJj0gT1BURUVfU01DX05TRUNfQ0FQX1VOSVBST0NFU1NP UjsKKyAgICBzZXRfdXNlcl9yZWcocmVncywgMSwgY2Fwcyk7CisKKyAgICAvKiBGb3J3YXJkIGNh bGwgYW5kIHJldHVybiBlcnJvciAoaWYgYW55KSBiYWNrIHRvIHRoZSBndWVzdCAqLworICAgIGlm ICggIWZvcndhcmRfY2FsbChyZWdzKSApCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgY2Fw cyA9IGdldF91c2VyX3JlZyhyZWdzLCAxKTsKKworICAgIC8qIEZpbHRlciBvdXQgdW5rbm93biBP UC1URUUgY2FwcyAqLworICAgIGNhcHMgJj0gT1BURUVfU01DX1NFQ19DQVBfSEFWRV9SRVNFUlZF RF9TSE0gfAorICAgICAgICBPUFRFRV9TTUNfU0VDX0NBUF9VTlJFR0lTVEVSRURfU0hNIHwKKyAg ICAgICAgT1BURUVfU01DX1NFQ19DQVBfRFlOQU1JQ19TSE07CisKKyAgICAvKiBEcm9wIHN0YXRp YyBTSE1fUlBDIGNhcCAqLworICAgIGNhcHMgJj0gfk9QVEVFX1NNQ19TRUNfQ0FQX0hBVkVfUkVT RVJWRURfU0hNOworCisgICAgLyogRG9uJ3QgYWxsb3cgZ3Vlc3RzIHRvIHdvcmsgd2l0aG91dCBk eW5hbWljIFNITSAqLworICAgIGlmICggIShjYXBzICYgT1BURUVfU01DX1NFQ19DQVBfRFlOQU1J Q19TSE0pICkgeworICAgICAgICBzZXRfcmV0dXJuKHJlZ3MsIE9QVEVFX1NNQ19SRVRVUk5fRU5P VEFWQUlMKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc2V0X3VzZXJfcmVn KHJlZ3MsIDEsIGNhcHMpOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMgYm9vbCBvcHRl ZV9oYW5kbGVfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICBzd2l0Y2gg KCBnZXRfdXNlcl9yZWcocmVncywgMCkgKQpAQCAtMTAzLDEwICsxNTAsMTcgQEAgc3RhdGljIGJv b2wgb3B0ZWVfaGFuZGxlX2NhbGwoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgY2Fz ZSBPUFRFRV9TTUNfRlVOQ0lEX0dFVF9PU19SRVZJU0lPTjoKICAgICBjYXNlIE9QVEVFX1NNQ19F TkFCTEVfU0hNX0NBQ0hFOgogICAgIGNhc2UgT1BURUVfU01DX0RJU0FCTEVfU0hNX0NBQ0hFOgor ICAgICAgICBmb3J3YXJkX2NhbGwocmVncyk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNh c2UgT1BURUVfU01DX0dFVF9TSE1fQ09ORklHOgorICAgICAgICAvKiBObyBzdGF0aWMgU0hNIGF2 YWlsYWJsZSBmb3IgZ3Vlc3RzICovCisgICAgICAgIHNldF9yZXR1cm4ocmVncywgT1BURUVfU01D X1JFVFVSTl9FTk9UQVZBSUwpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIE9QVEVF X1NNQ19FWENIQU5HRV9DQVBBQklMSVRJRVM6CisgICAgICAgIHJldHVybiBoYW5kbGVfZXhjaGFu Z2VfY2FwYWJpbGl0aWVzKHJlZ3MpOwogICAgIGNhc2UgT1BURUVfU01DX0NBTExfV0lUSF9BUkc6 CiAgICAgY2FzZSBPUFRFRV9TTUNfQ0FMTF9SRVRVUk5fRlJPTV9SUEM6CisgICAgICAgIC8qIFRP RE86IEFkZCBwcm9wZXIgaGFuZGxpbmcgZm9yIHRoaXMgY2FsbHMgKi8KICAgICAgICAgZm9yd2Fy ZF9jYWxsKHJlZ3MpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgotLSAKMi43 LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczov L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs