From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shanker Donthineni Subject: [PATCH 3/4] xen/arm: io: Use binary search for mmio handler lookup Date: Fri, 15 Jul 2016 10:26:41 -0500 Message-ID: <1468596402-26532-1-git-send-email-shankerd@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel Cc: Philip Elcan , Julien Grall , Stefano Stabellini , Shanker Donthineni , Vikram Sethi List-Id: xen-devel@lists.xenproject.org QXMgdGhlIG51bWJlciBvZiBJL08gaGFuZGxlcnMgaW5jcmVhc2UsIHRoZSBvdmVyaGVhZCBhc3Nv Y2lhdGVkIHdpdGgKbGluZWFyIGxvb2t1cCBhbHNvIGluY3JlYXNlcy4gVGhlIHN5c3RlbSBtaWdo dCBoYXZlIG1heGltdW0gb2YgMTQ0Cihhc3N1bWluZyBDT05GSUdfTlJfQ1BVUz0xMjgpIG1taW8g aGFuZGxlcnMuIEluIHdvcnN0IGNhc2Ugc2NlbmFyaW8sCml0IHdvdWxkIHJlcXVpcmUgMTQ0IGl0 ZXJhdGlvbnMgZm9yIGZpbmRpbmcgYSBtYXRjaGluZyBoYW5kbGVyLiBOb3cKaXQgaXMgdGltZSBm b3IgdXMgdG8gY2hhbmdlIGZyb20gbGluZWFyIChjb21wbGV4aXR5IE8obikpIHRvIGEgYmluYXJ5 CnNlYXJjaCAoY29tcGxleGl0eSBPKGxvZyBuKSBmb3IgcmVkdWNpbmcgbW1pbyBoYW5kbGVyIGxv b2t1cCBvdmVyaGVhZC4KClNpZ25lZC1vZmYtYnk6IFNoYW5rZXIgRG9udGhpbmVuaSA8c2hhbmtl cmRAY29kZWF1cm9yYS5vcmc+Ci0tLQogeGVuL2FyY2gvYXJtL2lvLmMgfCA0MCArKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0 aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2lvLmMg Yi94ZW4vYXJjaC9hcm0vaW8uYwppbmRleCA0MDMzMGYwLi5jZGMzYWEzIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC9hcm0vaW8uYworKysgYi94ZW4vYXJjaC9hcm0vaW8uYwpAQCAtMjAsNiArMjAsOCBA QAogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2suaD4KICNpbmNs dWRlIDx4ZW4vc2NoZWQuaD4KKyNpbmNsdWRlIDx4ZW4vc29ydC5oPgorI2luY2x1ZGUgPHhlbi9i c2VhcmNoLmg+CiAjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4KICNpbmNsdWRlIDxhc20vbW1pby5o PgogCkBAIC03MCwyNyArNzIsMzEgQEAgc3RhdGljIGludCBoYW5kbGVfd3JpdGUoY29uc3Qgc3Ry dWN0IG1taW9faGFuZGxlciAqaGFuZGxlciwgc3RydWN0IHZjcHUgKnYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaGFuZGxlci0+cHJpdik7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgbW1pb19oYW5kbGVyICpmaW5kX21taW9faGFuZGxlcihzdHJ1Y3QgZG9tYWluICpkLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3Qg Z3BhKQorLyogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgbW1pbyByZWdpb25zIGFyZSBub3Qg b3ZlcmxhcHBlZCAqLworc3RhdGljIGludCBjbXBfbW1pb19oYW5kbGVyKGNvbnN0IHZvaWQgKmtl eSwgY29uc3Qgdm9pZCAqZWxlbSkKIHsKLSAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpo YW5kbGVyOwotICAgIHVuc2lnbmVkIGludCBpOwotICAgIHN0cnVjdCB2bW1pbyAqdm1taW8gPSAm ZC0+YXJjaC52bW1pbzsKKyAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyMCA9 IGtleTsKKyAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5kbGVyMSA9IGVsZW07CiAK LSAgICByZWFkX2xvY2soJnZtbWlvLT5sb2NrKTsKKyAgICBpZiAoIGhhbmRsZXIwLT5hZGRyIDwg aGFuZGxlcjEtPmFkZHIgKQorICAgICAgICByZXR1cm4gLTE7CiAKLSAgICBmb3IgKCBpID0gMDsg aSA8IHZtbWlvLT5udW1fZW50cmllczsgaSsrICkKLSAgICB7Ci0gICAgICAgIGhhbmRsZXIgPSAm dm1taW8tPmhhbmRsZXJzW2ldOworICAgIGlmICggaGFuZGxlcjAtPmFkZHIgPiAoaGFuZGxlcjEt PmFkZHIgKyBoYW5kbGVyMS0+c2l6ZSkgKQorICAgICAgICByZXR1cm4gMTsKIAotICAgICAgICBp ZiAoIChncGEgPj0gaGFuZGxlci0+YWRkcikgJiYKLSAgICAgICAgICAgICAoZ3BhIDwgKGhhbmRs ZXItPmFkZHIgKyBoYW5kbGVyLT5zaXplKSkgKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQor ICAgIHJldHVybiAwOworfQogCi0gICAgaWYgKCBpID09IHZtbWlvLT5udW1fZW50cmllcyApCi0g ICAgICAgIGhhbmRsZXIgPSBOVUxMOworc3RhdGljIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIg KmZpbmRfbW1pb19oYW5kbGVyKHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBncGEpCit7CisgICAgc3Ry dWN0IHZtbWlvICp2bW1pbyA9ICZkLT5hcmNoLnZtbWlvOworICAgIHN0cnVjdCBtbWlvX2hhbmRs ZXIga2V5ID0gey5hZGRyID0gZ3BhfTsKKyAgICBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpo YW5kbGVyOwogCisgICAgcmVhZF9sb2NrKCZ2bW1pby0+bG9jayk7CisgICAgaGFuZGxlciA9IGJz ZWFyY2goJmtleSwgdm1taW8tPmhhbmRsZXJzLCB2bW1pby0+bnVtX2VudHJpZXMsCisgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKCpoYW5kbGVyKSwgY21wX21taW9faGFuZGxlcik7CiAgICAg cmVhZF91bmxvY2soJnZtbWlvLT5sb2NrKTsKIAogICAgIHJldHVybiBoYW5kbGVyOwpAQCAtMTMx LDYgKzEzNywxMCBAQCB2b2lkIHJlZ2lzdGVyX21taW9faGFuZGxlcihzdHJ1Y3QgZG9tYWluICpk LAogCiAgICAgdm1taW8tPm51bV9lbnRyaWVzKys7CiAKKyAgICAvKiBTb3J0IG1taW8gaGFuZGxl cnMgaW4gYXNjZW5kaW5nIG9yZGVyIGJhc2VkIG9uIGJhc2UgYWRkcmVzcyAqLworICAgIHNvcnQo dm1taW8tPmhhbmRsZXJzLCB2bW1pby0+bnVtX2VudHJpZXMsIHNpemVvZihzdHJ1Y3QgbW1pb19o YW5kbGVyKSwKKyAgICAgICAgIGNtcF9tbWlvX2hhbmRsZXIsIE5VTEwpOworCiAgICAgd3JpdGVf dW5sb2NrKCZ2bW1pby0+bG9jayk7CiB9CiAKLS0gClF1YWxjb21tIERhdGFjZW50ZXIgVGVjaG5v bG9naWVzLCBJbmMuIG9uIGJlaGFsZiBvZiB0aGUgUXVhbGNvbW0gVGVjaG5vbG9naWVzLCBJbmMu ClF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJv cmEgRm9ydW0sIGEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QuCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==