From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shanker Donthineni Subject: [PATCH V3 3/4] xen/arm: io: Use binary search for mmio handler lookup Date: Wed, 20 Jul 2016 09:00:55 -0500 Message-ID: <1469023256-6487-4-git-send-email-shankerd@codeaurora.org> References: <1469023256-6487-1-git-send-email-shankerd@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1469023256-6487-1-git-send-email-shankerd@codeaurora.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel , Julien Grall , Stefano Stabellini Cc: Philip Elcan , Wei Liu , Vikram Sethi , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Jan Beulich , Shanker Donthineni List-Id: xen-devel@lists.xenproject.org QXMgdGhlIG51bWJlciBvZiBJL08gaGFuZGxlcnMgaW5jcmVhc2UsIHRoZSBvdmVyaGVhZCBhc3Nv Y2lhdGVkIHdpdGgKbGluZWFyIGxvb2t1cCBhbHNvIGluY3JlYXNlcy4gVGhlIHN5c3RlbSBtaWdo dCBoYXZlIG1heGltdW0gb2YgMTQ0Cihhc3N1bWluZyBDT05GSUdfTlJfQ1BVUz0xMjgpIG1taW8g aGFuZGxlcnMuIEluIHdvcnN0IGNhc2Ugc2NlbmFyaW8sCml0IHdvdWxkIHJlcXVpcmUgMTQ0IGl0 ZXJhdGlvbnMgZm9yIGZpbmRpbmcgYSBtYXRjaGluZyBoYW5kbGVyLiBOb3cKaXQgaXMgdGltZSBm b3IgdXMgdG8gY2hhbmdlIGZyb20gbGluZWFyIChjb21wbGV4aXR5IE8obikpIHRvIGEgYmluYXJ5 CnNlYXJjaCAoY29tcGxleGl0eSBPKGxvZyBuKSBmb3IgcmVkdWNpbmcgbW1pbyBoYW5kbGVyIGxv b2t1cCBvdmVyaGVhZC4KClNpZ25lZC1vZmYtYnk6IFNoYW5rZXIgRG9udGhpbmVuaSA8c2hhbmtl cmRAY29kZWF1cm9yYS5vcmc+Ci0tLQogeGVuL2FyY2gvYXJtL2lvLmMgfCAzOSArKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRp b25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW8uYyBi L3hlbi9hcmNoL2FybS9pby5jCmluZGV4IDQwMzMwZjAuLmU4YWE3ZmEgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL2FybS9pby5jCisrKyBiL3hlbi9hcmNoL2FybS9pby5jCkBAIC0yMCw2ICsyMCw3IEBA CiAjaW5jbHVkZSA8eGVuL2xpYi5oPgogI2luY2x1ZGUgPHhlbi9zcGlubG9jay5oPgogI2luY2x1 ZGUgPHhlbi9zY2hlZC5oPgorI2luY2x1ZGUgPHhlbi9zb3J0Lmg+CiAjaW5jbHVkZSA8YXNtL2N1 cnJlbnQuaD4KICNpbmNsdWRlIDxhc20vbW1pby5oPgogCkBAIC03MCwyNyArNzEsMzEgQEAgc3Rh dGljIGludCBoYW5kbGVfd3JpdGUoY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlciwg c3RydWN0IHZjcHUgKnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlci0+ cHJpdik7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpmaW5kX21taW9f aGFuZGxlcihzdHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgZ3BhKQorLyogVGhpcyBmdW5jdGlvbiBhc3N1 bWVzIHRoYXQgbW1pbyByZWdpb25zIGFyZSBub3Qgb3ZlcmxhcHBlZCAqLworc3RhdGljIGludCBj bXBfbW1pb19oYW5kbGVyKGNvbnN0IHZvaWQgKmtleSwgY29uc3Qgdm9pZCAqZWxlbSkKIHsKLSAg ICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyOwotICAgIHVuc2lnbmVkIGludCBp OwotICAgIHN0cnVjdCB2bW1pbyAqdm1taW8gPSAmZC0+YXJjaC52bW1pbzsKKyAgICBjb25zdCBz dHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyMCA9IGtleTsKKyAgICBjb25zdCBzdHJ1Y3QgbW1p b19oYW5kbGVyICpoYW5kbGVyMSA9IGVsZW07CiAKLSAgICByZWFkX2xvY2soJnZtbWlvLT5sb2Nr KTsKKyAgICBpZiAoIGhhbmRsZXIwLT5hZGRyIDwgaGFuZGxlcjEtPmFkZHIgKQorICAgICAgICBy ZXR1cm4gLTE7CiAKLSAgICBmb3IgKCBpID0gMDsgaSA8IHZtbWlvLT5udW1fZW50cmllczsgaSsr ICkKLSAgICB7Ci0gICAgICAgIGhhbmRsZXIgPSAmdm1taW8tPmhhbmRsZXJzW2ldOworICAgIGlm ICggaGFuZGxlcjAtPmFkZHIgPiAoaGFuZGxlcjEtPmFkZHIgKyBoYW5kbGVyMS0+c2l6ZSkgKQor ICAgICAgICByZXR1cm4gMTsKIAotICAgICAgICBpZiAoIChncGEgPj0gaGFuZGxlci0+YWRkcikg JiYKLSAgICAgICAgICAgICAoZ3BhIDwgKGhhbmRsZXItPmFkZHIgKyBoYW5kbGVyLT5zaXplKSkg KQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHJldHVybiAwOworfQogCi0gICAgaWYg KCBpID09IHZtbWlvLT5udW1fZW50cmllcyApCi0gICAgICAgIGhhbmRsZXIgPSBOVUxMOworc3Rh dGljIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmZpbmRfbW1pb19oYW5kbGVyKHN0cnVjdCBk b21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFkZHJfdCBncGEpCit7CisgICAgc3RydWN0IHZtbWlvICp2bW1pbyA9ICZkLT5hcmNo LnZtbWlvOworICAgIHN0cnVjdCBtbWlvX2hhbmRsZXIga2V5ID0gey5hZGRyID0gZ3BhfTsKKyAg ICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyOwogCisgICAgcmVhZF9sb2NrKCZ2 bW1pby0+bG9jayk7CisgICAgaGFuZGxlciA9IGJzZWFyY2goJmtleSwgdm1taW8tPmhhbmRsZXJz LCB2bW1pby0+bnVtX2VudHJpZXMsCisgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCpoYW5k bGVyKSwgY21wX21taW9faGFuZGxlcik7CiAgICAgcmVhZF91bmxvY2soJnZtbWlvLT5sb2NrKTsK IAogICAgIHJldHVybiBoYW5kbGVyOwpAQCAtMTMxLDYgKzEzNiwxMCBAQCB2b2lkIHJlZ2lzdGVy X21taW9faGFuZGxlcihzdHJ1Y3QgZG9tYWluICpkLAogCiAgICAgdm1taW8tPm51bV9lbnRyaWVz Kys7CiAKKyAgICAvKiBTb3J0IG1taW8gaGFuZGxlcnMgaW4gYXNjZW5kaW5nIG9yZGVyIGJhc2Vk IG9uIGJhc2UgYWRkcmVzcyAqLworICAgIHNvcnQodm1taW8tPmhhbmRsZXJzLCB2bW1pby0+bnVt X2VudHJpZXMsIHNpemVvZihzdHJ1Y3QgbW1pb19oYW5kbGVyKSwKKyAgICAgICAgIGNtcF9tbWlv X2hhbmRsZXIsIE5VTEwpOworCiAgICAgd3JpdGVfdW5sb2NrKCZ2bW1pby0+bG9jayk7CiB9CiAK LS0gClF1YWxjb21tIERhdGFjZW50ZXIgVGVjaG5vbG9naWVzLCBJbmMuIG9uIGJlaGFsZiBvZiB0 aGUgUXVhbGNvbW0gVGVjaG5vbG9naWVzLCBJbmMuClF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5j LiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sIGEgTGludXggRm91bmRhdGlv biBDb2xsYWJvcmF0aXZlIFByb2plY3QuCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==