From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shanker Donthineni Subject: [PATCH V4 10/11] xen/arm: io: Use binary search for mmio handler lookup Date: Thu, 14 Jul 2016 11:18:00 -0500 Message-ID: <1468513081-12002-2-git-send-email-shankerd@codeaurora.org> References: <1468513081-12002-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: <1468513081-12002-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 , Shanker Donthineni , Vikram Sethi List-Id: xen-devel@lists.xenproject.org QXMgdGhlIG51bWJlciBvZiBJL08gaGFuZGxlcnMgaW5jcmVhc2UsIHRoZSBvdmVyaGVhZCBhc3Nv Y2lhdGVkIHdpdGgKbGluZWFyIGxvb2t1cCBhbHNvIGluY3JlYXNlcy4gVGhlIHN5c3RlbSBtaWdo dCBoYXZlIG1heGltdW0gb2YgMTQ0Cihhc3N1bWluZyBDT05GSUdfTlJfQ1BVUz0xMjgpIG1taW8g aGFuZGxlcnMuIEluIHdvcnN0IGNhc2Ugc2NlbmFyaW8sCml0IHdvdWxkIHJlcXVpcmUgMTQ0IGl0 ZXJhdGlvbnMgZm9yIGZpbmRpbmcgYSBtYXRjaGluZyBoYW5kbGVyLiBOb3cKaXQgaXMgdGltZSBm b3IgdXMgdG8gY2hhbmdlIGZyb20gbGluZWFyIChjb21wbGV4aXR5IE8obikpIHRvIGEgYmluYXJ5 CnNlYXJjaCAoY29tcGxleGl0eSBPKGxvZyBuKSBmb3IgcmVkdWNpbmcgbW1pbyBoYW5kbGVyIGxv b2t1cCBvdmVyaGVhZC4KClNpZ25lZC1vZmYtYnk6IFNoYW5rZXIgRG9udGhpbmVuaSA8c2hhbmtl cmRAY29kZWF1cm9yYS5vcmc+Ci0tLQpDaGFuZ2VzIHNpbmNlIHYzOgogIE1vdmVkIHRoZSBmdW5j dGlvbiBic2VhcmNoKCkgdG8gY29tbW9uIGZpbGUgeGVuL2NvbW1vbi9ic2VhcmNoLmMuCgpDaGFu Z2VzIHNpbmNlIHYyOgogIENvbnZlcnRlZCBtbWlvIGxvb2t1cCBjb2RlIHRvIGEgY3JpdGljYWwg c2VjdGlvbi4KICBDb3BpZWQgdGhlIGZ1bmN0aW9uIGJzcmVhY2goKSBmcm9tIExpbnV4IGtlcm5l bC4KCiB4ZW4vYXJjaC9hcm0vaW8uYyB8IDQyICsrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDE3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pby5jIGIveGVuL2FyY2gvYXJtL2lv LmMKaW5kZXggNDAzMzBmMC4uMDQ3MWJhOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2lvLmMK KysrIGIveGVuL2FyY2gvYXJtL2lvLmMKQEAgLTIwLDYgKzIwLDggQEAKICNpbmNsdWRlIDx4ZW4v bGliLmg+CiAjaW5jbHVkZSA8eGVuL3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+ CisjaW5jbHVkZSA8eGVuL3NvcnQuaD4KKyNpbmNsdWRlIDx4ZW4vYnNlYXJjaC5oPgogI2luY2x1 ZGUgPGFzbS9jdXJyZW50Lmg+CiAjaW5jbHVkZSA8YXNtL21taW8uaD4KIApAQCAtNzAsMjcgKzcy LDI5IEBAIHN0YXRpYyBpbnQgaGFuZGxlX3dyaXRlKGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIg KmhhbmRsZXIsIHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGhhbmRsZXItPnByaXYpOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAq ZmluZF9tbWlvX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGdwYSkKK3N0YXRpYyBpbnQg Y21wX21taW9faGFuZGxlcihjb25zdCB2b2lkICprZXksIGNvbnN0IHZvaWQgKmVsZW0pCiB7Ci0g ICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlcjsKLSAgICB1bnNpZ25lZCBpbnQg aTsKLSAgICBzdHJ1Y3Qgdm1taW8gKnZtbWlvID0gJmQtPmFyY2gudm1taW87CisgICAgY29uc3Qg c3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlcjAgPSBrZXk7CisgICAgY29uc3Qgc3RydWN0IG1t aW9faGFuZGxlciAqaGFuZGxlcjEgPSBlbGVtOwogCi0gICAgcmVhZF9sb2NrKCZ2bW1pby0+bG9j ayk7CisgICAgaWYgKCBoYW5kbGVyMC0+YWRkciA8IGhhbmRsZXIxLT5hZGRyICkKKyAgICAgICAg cmV0dXJuIC0xOwogCi0gICAgZm9yICggaSA9IDA7IGkgPCB2bW1pby0+bnVtX2VudHJpZXM7IGkr KyApCi0gICAgewotICAgICAgICBoYW5kbGVyID0gJnZtbWlvLT5oYW5kbGVyc1tpXTsKKyAgICBp ZiAoIGhhbmRsZXIwLT5hZGRyID4gKGhhbmRsZXIxLT5hZGRyICsgaGFuZGxlcjEtPnNpemUpICkK KyAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAgaWYgKCAoZ3BhID49IGhhbmRsZXItPmFkZHIp ICYmCi0gICAgICAgICAgICAgKGdwYSA8IChoYW5kbGVyLT5hZGRyICsgaGFuZGxlci0+c2l6ZSkp ICkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KKyAgICByZXR1cm4gMDsKK30KIAotICAgIGlm ICggaSA9PSB2bW1pby0+bnVtX2VudHJpZXMgKQotICAgICAgICBoYW5kbGVyID0gTlVMTDsKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpmaW5kX21taW9faGFuZGxlcihzdHJ1Y3Qg dmNwdSAqdiwgcGFkZHJfdCBncGEpCit7CisgICAgc3RydWN0IHZtbWlvICp2bW1pbyA9ICZ2LT5k b21haW4tPmFyY2gudm1taW87CisgICAgc3RydWN0IG1taW9faGFuZGxlciBrZXkgPSB7LmFkZHIg PSBncGF9OworICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRsZXI7CiAKKyAgICBy ZWFkX2xvY2soJnZtbWlvLT5sb2NrKTsKKyAgICBoYW5kbGVyID0gYnNlYXJjaCgma2V5LCB2bW1p by0+aGFuZGxlcnMsIHZtbWlvLT5udW1fZW50cmllcywKKyAgICAgICAgICAgICAgICAgICAgICBz aXplb2YoKmhhbmRsZXIpLCBjbXBfbW1pb19oYW5kbGVyKTsKICAgICByZWFkX3VubG9jaygmdm1t aW8tPmxvY2spOwogCiAgICAgcmV0dXJuIGhhbmRsZXI7CkBAIC05OSw5ICsxMDMsOSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqZmluZF9tbWlvX2hhbmRsZXIoc3RydWN0IGRv bWFpbiAqZCwKIGludCBoYW5kbGVfbW1pbyhtbWlvX2luZm9fdCAqaW5mbykKIHsKICAgICBzdHJ1 Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7Ci0gICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFu ZGxlciA9IE5VTEw7CisgICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlcjsKIAot ICAgIGhhbmRsZXIgPSBmaW5kX21taW9faGFuZGxlcih2LT5kb21haW4sIGluZm8tPmdwYSk7Cisg ICAgaGFuZGxlciA9IGZpbmRfbW1pb19oYW5kbGVyKHYsIGluZm8tPmdwYSk7CiAgICAgaWYgKCAh aGFuZGxlciApCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xMzEsNiArMTM1LDEwIEBAIHZvaWQg cmVnaXN0ZXJfbW1pb19oYW5kbGVyKHN0cnVjdCBkb21haW4gKmQsCiAKICAgICB2bW1pby0+bnVt X2VudHJpZXMrKzsKIAorICAgIC8qIFNvcnQgbW1pbyBoYW5kbGVycyBpbiBhc2NlbmRpbmcgb3Jk ZXIgYmFzZWQgb24gYmFzZSBhZGRyZXNzICovCisgICAgc29ydCh2bW1pby0+aGFuZGxlcnMsIHZt bWlvLT5udW1fZW50cmllcywgc2l6ZW9mKHN0cnVjdCBtbWlvX2hhbmRsZXIpLAorICAgICAgICBj bXBfbW1pb19oYW5kbGVyLCBOVUxMKTsKKwogICAgIHdyaXRlX3VubG9jaygmdm1taW8tPmxvY2sp OwogfQogCi0tIApRdWFsY29tbSBUZWNobm9sb2dpZXMsIEluYy4gb24gYmVoYWxmIG9mIFF1YWxj b21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIApRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwg SW5jLiBpcyBhIG1lbWJlciBvZiBDb2RlIEF1cm9yYSBGb3J1bSwgCmEgTGludXggRm91bmRhdGlv biBDb2xsYWJvcmF0aXZlIFByb2plY3QKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK