From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shanker Donthineni Subject: [PATCH RESEND 3/4] xen/arm: io: Use binary search for mmio handler lookup Date: Fri, 15 Jul 2016 12:35:39 -0500 Message-ID: <1468604140-15665-4-git-send-email-shankerd@codeaurora.org> References: <1468604140-15665-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: <1468604140-15665-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 Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , Shanker Donthineni List-Id: xen-devel@lists.xenproject.org QXMgdGhlIG51bWJlciBvZiBJL08gaGFuZGxlcnMgaW5jcmVhc2UsIHRoZSBvdmVyaGVhZCBhc3Nv Y2lhdGVkIHdpdGgKbGluZWFyIGxvb2t1cCBhbHNvIGluY3JlYXNlcy4gVGhlIHN5c3RlbSBtaWdo dCBoYXZlIG1heGltdW0gb2YgMTQ0Cihhc3N1bWluZyBDT05GSUdfTlJfQ1BVUz0xMjgpIG1taW8g aGFuZGxlcnMuIEluIHdvcnN0IGNhc2Ugc2NlbmFyaW8sCml0IHdvdWxkIHJlcXVpcmUgMTQ0IGl0 ZXJhdGlvbnMgZm9yIGZpbmRpbmcgYSBtYXRjaGluZyBoYW5kbGVyLiBOb3cKaXQgaXMgdGltZSBm b3IgdXMgdG8gY2hhbmdlIGZyb20gbGluZWFyIChjb21wbGV4aXR5IE8obikpIHRvIGEgYmluYXJ5 CnNlYXJjaCAoY29tcGxleGl0eSBPKGxvZyBuKSBmb3IgcmVkdWNpbmcgbW1pbyBoYW5kbGVyIGxv b2t1cCBvdmVyaGVhZC4KClNpZ25lZC1vZmYtYnk6IFNoYW5rZXIgRG9udGhpbmVuaSA8c2hhbmtl cmRAY29kZWF1cm9yYS5vcmc+Ci0tLQogUmVzZW5kIHRvIGZpeCB0aGUgSW4tUmVwbHktVG8vUmVm ZXJlbmNlcyBoZWFkZXIgZmVpbGRzLgoKIHhlbi9hcmNoL2FybS9pby5jIHwgNDAgKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI1IGluc2Vy dGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pby5j IGIveGVuL2FyY2gvYXJtL2lvLmMKaW5kZXggNDAzMzBmMC4uY2RjM2FhMyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL2lvLmMKKysrIGIveGVuL2FyY2gvYXJtL2lvLmMKQEAgLTIwLDYgKzIwLDgg QEAKICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL3NwaW5sb2NrLmg+CiAjaW5j bHVkZSA8eGVuL3NjaGVkLmg+CisjaW5jbHVkZSA8eGVuL3NvcnQuaD4KKyNpbmNsdWRlIDx4ZW4v YnNlYXJjaC5oPgogI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+CiAjaW5jbHVkZSA8YXNtL21taW8u aD4KIApAQCAtNzAsMjcgKzcyLDMxIEBAIHN0YXRpYyBpbnQgaGFuZGxlX3dyaXRlKGNvbnN0IHN0 cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRsZXIsIHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGhhbmRsZXItPnByaXYpOwogfQogCi1zdGF0aWMgY29uc3Qgc3Ry dWN0IG1taW9faGFuZGxlciAqZmluZF9tbWlvX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90 IGdwYSkKKy8qIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IG1taW8gcmVnaW9ucyBhcmUgbm90 IG92ZXJsYXBwZWQgKi8KK3N0YXRpYyBpbnQgY21wX21taW9faGFuZGxlcihjb25zdCB2b2lkICpr ZXksIGNvbnN0IHZvaWQgKmVsZW0pCiB7Ci0gICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAq aGFuZGxlcjsKLSAgICB1bnNpZ25lZCBpbnQgaTsKLSAgICBzdHJ1Y3Qgdm1taW8gKnZtbWlvID0g JmQtPmFyY2gudm1taW87CisgICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlcjAg PSBrZXk7CisgICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAqaGFuZGxlcjEgPSBlbGVtOwog Ci0gICAgcmVhZF9sb2NrKCZ2bW1pby0+bG9jayk7CisgICAgaWYgKCBoYW5kbGVyMC0+YWRkciA8 IGhhbmRsZXIxLT5hZGRyICkKKyAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgZm9yICggaSA9IDA7 IGkgPCB2bW1pby0+bnVtX2VudHJpZXM7IGkrKyApCi0gICAgewotICAgICAgICBoYW5kbGVyID0g JnZtbWlvLT5oYW5kbGVyc1tpXTsKKyAgICBpZiAoIGhhbmRsZXIwLT5hZGRyID4gKGhhbmRsZXIx LT5hZGRyICsgaGFuZGxlcjEtPnNpemUpICkKKyAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAg aWYgKCAoZ3BhID49IGhhbmRsZXItPmFkZHIpICYmCi0gICAgICAgICAgICAgKGdwYSA8IChoYW5k bGVyLT5hZGRyICsgaGFuZGxlci0+c2l6ZSkpICkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0K KyAgICByZXR1cm4gMDsKK30KIAotICAgIGlmICggaSA9PSB2bW1pby0+bnVtX2VudHJpZXMgKQot ICAgICAgICBoYW5kbGVyID0gTlVMTDsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVy ICpmaW5kX21taW9faGFuZGxlcihzdHJ1Y3QgZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgZ3BhKQoreworICAgIHN0 cnVjdCB2bW1pbyAqdm1taW8gPSAmZC0+YXJjaC52bW1pbzsKKyAgICBzdHJ1Y3QgbW1pb19oYW5k bGVyIGtleSA9IHsuYWRkciA9IGdwYX07CisgICAgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlciAq aGFuZGxlcjsKIAorICAgIHJlYWRfbG9jaygmdm1taW8tPmxvY2spOworICAgIGhhbmRsZXIgPSBi c2VhcmNoKCZrZXksIHZtbWlvLT5oYW5kbGVycywgdm1taW8tPm51bV9lbnRyaWVzLAorICAgICAg ICAgICAgICAgICAgICAgIHNpemVvZigqaGFuZGxlciksIGNtcF9tbWlvX2hhbmRsZXIpOwogICAg IHJlYWRfdW5sb2NrKCZ2bW1pby0+bG9jayk7CiAKICAgICByZXR1cm4gaGFuZGxlcjsKQEAgLTEz MSw2ICsxMzcsMTAgQEAgdm9pZCByZWdpc3Rlcl9tbWlvX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAq ZCwKIAogICAgIHZtbWlvLT5udW1fZW50cmllcysrOwogCisgICAgLyogU29ydCBtbWlvIGhhbmRs ZXJzIGluIGFzY2VuZGluZyBvcmRlciBiYXNlZCBvbiBiYXNlIGFkZHJlc3MgKi8KKyAgICBzb3J0 KHZtbWlvLT5oYW5kbGVycywgdm1taW8tPm51bV9lbnRyaWVzLCBzaXplb2Yoc3RydWN0IG1taW9f aGFuZGxlciksCisgICAgICAgICBjbXBfbW1pb19oYW5kbGVyLCBOVUxMKTsKKwogICAgIHdyaXRl X3VubG9jaygmdm1taW8tPmxvY2spOwogfQogCi0tIApRdWFsY29tbSBEYXRhY2VudGVyIFRlY2hu b2xvZ2llcywgSW5jLiBvbiBiZWhhbGYgb2YgdGhlIFF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5j LgpRdWFsY29tbSBUZWNobm9sb2dpZXMsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVy b3JhIEZvcnVtLCBhIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0LgoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=