From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v5 04/28] vmap: Add vmalloc_cb and vfree_cb Date: Thu, 24 Mar 2016 16:00:16 -0400 Message-ID: <1458849640-22588-5-git-send-email-konrad.wilk@oracle.com> References: <1458849640-22588-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ajBSj-0000VX-2B for xen-devel@lists.xenproject.org; Thu, 24 Mar 2016 20:02:33 +0000 In-Reply-To: <1458849640-22588-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, ross.lagerwall@citrix.com, konrad@kernel.org, andrew.cooper3@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.com Cc: Keir Fraser , Tim Deegan , Ian Jackson , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org Rm9yIHRob3NlIHVzZXJzIHdobyB3YW50IHRvIHN1cHBseSB0aGVpciBvd24gdm1hcCBjYWxsYmFj ay4KVG8gYmUgY2FsbGVkIF9hZnRlcl8gdGhlIHBhZ2VzIGhhdmUgYmVlbiBhbGxvY2F0ZWQgYW5k CnRoZSB2bWFwIEFQSSBpcyByZWFkeSB0byBoYW5kIG91dCB2aXJ0dWFsIGFkZHJlc3Nlcy4KCklu c3RlYWQgb2YgdXNpbmcgdGhlIHZtYXAgb25lcyBpdCBjYW4gY2FsbCB0aGUgY2FsbGJhY2sKd2hp Y2ggd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyB0aGUgdmlydHVhbAphZGRyZXNz LgoKVGhpcyBhbGxvd3MgdXNlcnMgKHN1Y2ggYXMgeFNwbGljZSkgdG8gcHJvdmlkZSB0aGVpciBv d24KbWVjaGFuaXNtIHRvIHNldCB0aGUgcGFnZSBmbGFncy4KVGhlIHVzZXJzIChzdWNoIGFzIHBh dGNoIHRpdGxlZCAieHNwbGljZTogSW1wbGVtZW50IHBheWxvYWQKbG9hZGluZyIpIGNhbiB3cmFw IHRoZSBjYWxscyB0byBfX3ZtYXAgdG8gYWNjb21wbGlzaCB0aGlzLgoKV2UgYWxzbyBwcm92aWRl IGEgbWVjaGFuaXNtIGZvciB0aGUgY2FsbGVlciB0byBzcXVpcnJlbAp0aGUgTUZOIGFycmF5IGlu IGNhc2UgdGhleSB3YW50IHRvIG1vZGlmeSB0aGUgdmlydHVhbAphZGRyZXNzZXMgZWFzaWx5LgoK V2UgYWxzbyBwcm92aWRlIHRoZSBmcmVlLWluZyBjb2RlIHBhdGggLSB0byB1c2UgdGhlIHZ1bm1h cF9jYgp0byB0YWtlIGNhcmUgb2YgdGVhcmluZyBkb3duIHRoZSB2aXJ0dWFsIGFkZHJlc3Nlcy4K ClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xl LmNvbT4KCi0tLQpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNj OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBLZWlyIEZyYXNlciA8a2VpckB4 ZW4ub3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+Cgp2NDogTmV3IHBhdGNoLgp2NTog VXBkYXRlIHBlciBKYW4ncyBjb21tZW50cy4KLS0tCi0tLQogeGVuL2NvbW1vbi92bWFwLmMgICAg ICB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogeGVuL2luY2x1ZGUveGVu L3ZtYXAuaCB8IDE0ICsrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi92bWFwLmMgYi94 ZW4vY29tbW9uL3ZtYXAuYwppbmRleCAxMzRlZGEwLi4wOGU3ODU5IDEwMDY0NAotLS0gYS94ZW4v Y29tbW9uL3ZtYXAuYworKysgYi94ZW4vY29tbW9uL3ZtYXAuYwpAQCAtMjE2LDcgKzIxNiw3IEBA IHZvaWQgdnVubWFwKGNvbnN0IHZvaWQgKnZhKQogICAgIHZtX2ZyZWUodmEpOwogfQogCi12b2lk ICp2bWFsbG9jKHNpemVfdCBzaXplKQordm9pZCAqdm1hbGxvY19jYihzaXplX3Qgc2l6ZSwgdm1h cF9jYl90ICp2bWFwX2NiLCBtZm5fdCAqKm1mbl9hcnJheSkKIHsKICAgICBtZm5fdCAqbWZuOwog ICAgIHNpemVfdCBwYWdlcywgaTsKQEAgLTIzOCwxMSArMjM4LDE1IEBAIHZvaWQgKnZtYWxsb2Mo c2l6ZV90IHNpemUpCiAgICAgICAgIG1mbltpXSA9IF9tZm4ocGFnZV90b19tZm4ocGcpKTsKICAg ICB9CiAKLSAgICB2YSA9IHZtYXAobWZuLCBwYWdlcyk7CisgICAgdmEgPSB2bWFwX2NiID8gdm1h cF9jYihtZm4sIHBhZ2VzKSA6IHZtYXAobWZuLCBwYWdlcyk7CiAgICAgaWYgKCB2YSA9PSBOVUxM ICkKICAgICAgICAgZ290byBlcnJvcjsKIAotICAgIHhmcmVlKG1mbik7CisgICAgaWYgKCBtZm5f YXJyYXkgKQorICAgICAgICAqbWZuX2FycmF5ID0gbWZuOworICAgIGVsc2UKKyAgICAgICAgeGZy ZWUobWZuKTsKKwogICAgIHJldHVybiB2YTsKIAogIGVycm9yOgpAQCAtMjUyLDYgKzI1NiwxMSBA QCB2b2lkICp2bWFsbG9jKHNpemVfdCBzaXplKQogICAgIHJldHVybiBOVUxMOwogfQogCit2b2lk ICp2bWFsbG9jKHNpemVfdCBzaXplKQoreworICAgIHJldHVybiB2bWFsbG9jX2NiKHNpemUsIE5V TEwsIE5VTEwpOworfQorCiB2b2lkICp2emFsbG9jKHNpemVfdCBzaXplKQogewogICAgIHZvaWQg KnAgPSB2bWFsbG9jKHNpemUpOwpAQCAtMjY2LDE2ICsyNzUsMTUgQEAgdm9pZCAqdnphbGxvYyhz aXplX3Qgc2l6ZSkKICAgICByZXR1cm4gcDsKIH0KIAotdm9pZCB2ZnJlZSh2b2lkICp2YSkKK3Zv aWQgdmZyZWVfY2Iodm9pZCAqdmEsIHVuc2lnbmVkIGludCBwYWdlcywgdmZyZWVfY2JfdCAqdmZy ZWVfY2JfZm5jKQogewotICAgIHVuc2lnbmVkIGludCBpLCBwYWdlczsKKyAgICB1bnNpZ25lZCBp bnQgaTsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKICAgICBQQUdFX0xJU1RfSEVBRChwZ19s aXN0KTsKIAogICAgIGlmICggIXZhICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZXMgPSB2 bV9zaXplKHZhKTsKICAgICBBU1NFUlQocGFnZXMpOwogCiAgICAgZm9yICggaSA9IDA7IGkgPCBw YWdlczsgaSsrICkKQEAgLTI4NSw5ICsyOTMsMjAgQEAgdm9pZCB2ZnJlZSh2b2lkICp2YSkKICAg ICAgICAgQVNTRVJUKHBhZ2UpOwogICAgICAgICBwYWdlX2xpc3RfYWRkKHBhZ2UsICZwZ19saXN0 KTsKICAgICB9Ci0gICAgdnVubWFwKHZhKTsKKyAgICBpZiAoICF2ZnJlZV9jYl9mbmMgKQorICAg ICAgICB2dW5tYXAodmEpOworICAgIGVsc2UKKyAgICAgICAgdmZyZWVfY2JfZm5jKHZhLCBwYWdl cyk7CiAKICAgICB3aGlsZSAoIChwZyA9IHBhZ2VfbGlzdF9yZW1vdmVfaGVhZCgmcGdfbGlzdCkp ICE9IE5VTEwgKQogICAgICAgICBmcmVlX2RvbWhlYXBfcGFnZShwZyk7CiB9CisKK3ZvaWQgdmZy ZWUodm9pZCAqdmEpCit7CisgICAgaWYgKCAhdmEgKQorICAgICAgICByZXR1cm47CisKKyAgICB2 ZnJlZV9jYih2YSwgdm1fc2l6ZSh2YSksIE5VTEwpOworfQogI2VuZGlmCmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS94ZW4vdm1hcC5oIGIveGVuL2luY2x1ZGUveGVuL3ZtYXAuaAppbmRleCA1Njcx YWM4Li4wMmNhZGIzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vdm1hcC5oCisrKyBiL3hl bi9pbmNsdWRlL3hlbi92bWFwLmgKQEAgLTEyLDkgKzEyLDIzIEBAIHZvaWQgKl9fdm1hcChjb25z dCBtZm5fdCAqbWZuLCB1bnNpZ25lZCBpbnQgZ3JhbnVsYXJpdHksCiB2b2lkICp2bWFwKGNvbnN0 IG1mbl90ICptZm4sIHVuc2lnbmVkIGludCBucik7CiB2b2lkIHZ1bm1hcChjb25zdCB2b2lkICop Owogdm9pZCAqdm1hbGxvYyhzaXplX3Qgc2l6ZSk7CisKKy8qCisgKiBDYWxsYmFjayBmb3Igdm1h bGxvY19jYiB0byB1c2Ugd2hlbiB2bWFwLWluZy4KKyAqLwordHlwZWRlZiB2b2lkICoodm1hcF9j Yl90KShjb25zdCBtZm5fdCAqbWZuLCB1bnNpZ25lZCBpbnQgcGFnZXMpOwordm9pZCAqdm1hbGxv Y19jYihzaXplX3Qgc2l6ZSwgdm1hcF9jYl90ICp2bWFwX2NiLCBtZm5fdCAqKik7CisKIHZvaWQg KnZ6YWxsb2Moc2l6ZV90IHNpemUpOwogdm9pZCB2ZnJlZSh2b2lkICp2YSk7CiAKKy8qCisgKiBD YWxsYmFjayBmb3IgdmZyZWUgdG8gdXNlIGFuIGVxdWl2YWxlbnQgb2Ygdm1hcF9jYl90CisgKiB3 aGVuIHRlYXJpbmcgZG93bi4KKyAqLwordHlwZWRlZiB2b2lkICh2ZnJlZV9jYl90KSh2b2lkICp2 YSwgdW5zaWduZWQgaW50IHBhZ2VzKTsKK3ZvaWQgdmZyZWVfY2Iodm9pZCAqdmEsIHVuc2lnbmVk IGludCBwYWdlcywgdmZyZWVfY2JfdCAqdmZyZWVfY2JfZm5jKTsKKwogdm9pZCBfX2lvbWVtICpp b3JlbWFwKHBhZGRyX3QsIHNpemVfdCk7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpb3VubWFwKHZv aWQgX19pb21lbSAqdmEpCi0tIAoyLjUuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==