From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH 06/14] xen: Convert hotplug page function to use typesafe MFN Date: Tue, 7 May 2019 16:14:50 +0100 Message-ID: <20190507151458.29350-7-julien.grall@arm.com> References: <20190507151458.29350-1-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hO1oR-0007Mn-5r for xen-devel@lists.xenproject.org; Tue, 07 May 2019 15:15:23 +0000 In-Reply-To: <20190507151458.29350-1-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org Q29udmVydCBvbmxpbmVfcGFnZSwgb2ZmbGluZV9wYWdlIGFuZCBxdWVyeV9wYWdlX29mZmxpbmUg dG8gdXNlCnR5cGVzYWZlIE1GTi4KCk5vdGUsIGZvciBjbGFyaXR5LCB0aGUgd29yZHMgaGF2ZSBi ZWVuIHJlLW9yZGVyZWQgaW4gdGhlIGVycm9yIG1lc3NhZ2UKdXBkYXRlZCBieSB0aGlzIHBhdGNo LgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxq dWxpZW4uZ3JhbGxAYXJtLmNvbT4KQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KCi0tLQogICAgQ2hhbmdlczoKICAgICAgICAtIFVwZGF0ZSBlcnJvciBtZXNzYWdlCiAg ICAgICAgLSBBZGQgSmFuJ3MgYWNrZWQtYnkKLS0tCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay9t Y2FjdGlvbi5jIHwgMTggKysrKysrKysrKy0tLS0tLS0tCiB4ZW4vY29tbW9uL3BhZ2VfYWxsb2Mu YyAgICAgICAgICAgIHwgMjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9uL3N5 c2N0bC5jICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0KIHhlbi9pbmNsdWRlL3hl bi9tbS5oICAgICAgICAgICAgICAgfCAgNiArKystLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzIgaW5z ZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svbWNhY3Rpb24uYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMK aW5kZXggZTQyMjY3NDE0ZS4uNjkzMzJmYjg0ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svbWNhY3Rpb24uYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2FjdGlv bi5jCkBAIC02LDcgKzYsNyBAQAogCiBzdGF0aWMgc3RydWN0IG1jaW5mb19yZWNvdmVyeSAqCiBt Y2lfYWN0aW9uX2FkZF9wYWdlb2ZmbGluZShpbnQgYmFuaywgc3RydWN0IG1jX2luZm8gKm1pLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgbWZuLCB1aW50MzJfdCBzdGF0dXMp CisgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4sIHVpbnQzMl90IHN0YXR1cykK IHsKICAgICBzdHJ1Y3QgbWNpbmZvX3JlY292ZXJ5ICpyZWM7CiAKQEAgLTIyLDcgKzIyLDcgQEAg bWNpX2FjdGlvbl9hZGRfcGFnZW9mZmxpbmUoaW50IGJhbmssIHN0cnVjdCBtY19pbmZvICptaSwK IAogICAgIHJlYy0+bWNfYmFuayA9IGJhbms7CiAgICAgcmVjLT5hY3Rpb25fdHlwZXMgPSBNQ19B Q1RJT05fUEFHRV9PRkZMSU5FOwotICAgIHJlYy0+YWN0aW9uX2luZm8ucGFnZV9yZXRpcmUubWZu ID0gbWZuOworICAgIHJlYy0+YWN0aW9uX2luZm8ucGFnZV9yZXRpcmUubWZuID0gbWZuX3gobWZu KTsKICAgICByZWMtPmFjdGlvbl9pbmZvLnBhZ2VfcmV0aXJlLnN0YXR1cyA9IHN0YXR1czsKICAg ICByZXR1cm4gcmVjOwogfQpAQCAtNDIsNyArNDIsOCBAQCBtY19tZW1lcnJfZGhhbmRsZXIoc3Ry dWN0IG1jYV9iaW5mbyAqYmluZm8sCiAgICAgc3RydWN0IG1jaW5mb19iYW5rICpiYW5rID0gYmlu Zm8tPm1pYjsKICAgICBzdHJ1Y3QgbWNpbmZvX2dsb2JhbCAqZ2xvYmFsID0gYmluZm8tPm1pZzsK ICAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIHVuc2lnbmVkIGxvbmcgbWZuLCBnZm47CisgICAg bWZuX3QgbWZuOworICAgIHVuc2lnbmVkIGxvbmcgZ2ZuOwogICAgIHVpbnQzMl90IHN0YXR1czsK ICAgICBpbnQgdm1jZV92Y3B1aWQ7CiAgICAgdW5zaWduZWQgaW50IG1jX3ZjcHVpZDsKQEAgLTU0 LDExICs1NSwxMiBAQCBtY19tZW1lcnJfZGhhbmRsZXIoc3RydWN0IG1jYV9iaW5mbyAqYmluZm8s CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtZm4gPSBiYW5rLT5tY19hZGRyID4+IFBB R0VfU0hJRlQ7CisgICAgbWZuID0gbWFkZHJfdG9fbWZuKGJhbmstPm1jX2FkZHIpOwogICAgIGlm ICggb2ZmbGluZV9wYWdlKG1mbiwgMSwgJnN0YXR1cykgKQogICAgIHsKICAgICAgICAgZHByaW50 ayhYRU5MT0dfV0FSTklORywKLSAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIG9mZmxpbmUgcGFn ZSAlbHggZm9yIE1DRSBlcnJvclxuIiwgbWZuKTsKKyAgICAgICAgICAgICAgICAiRmFpbGVkIHRv IG9mZmxpbmUgcGFnZSAlIlBSSV9tZm4iIGZvciBNQ0UgZXJyb3JcbiIsCisgICAgICAgICAgICAg ICAgbWZuX3gobWZuKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTg5LDEwICs5MSwx MCBAQCBtY19tZW1lcnJfZGhhbmRsZXIoc3RydWN0IG1jYV9iaW5mbyAqYmluZm8sCiAgICAgICAg ICAgICAgICAgQVNTRVJUKGQpOwogICAgICAgICAgICAgICAgIGdmbiA9IGdldF9ncGZuX2Zyb21f bWZuKChiYW5rLT5tY19hZGRyKSA+PiBQQUdFX1NISUZUKTsKIAotICAgICAgICAgICAgICAgIGlm ICggdW5tbWFwX2Jyb2tlbl9wYWdlKGQsIF9tZm4obWZuKSwgZ2ZuKSApCisgICAgICAgICAgICAg ICAgaWYgKCB1bm1tYXBfYnJva2VuX3BhZ2UoZCwgbWZuLCBnZm4pICkKICAgICAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50aygiVW5tYXAgYnJva2VuIG1lbW9yeSAlbHgg Zm9yIERPTSVkIGZhaWxlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbiwgZC0+ ZG9tYWluX2lkKTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRrKCJVbm1hcCBicm9rZW4gbWVt b3J5ICUiUFJJX21mbiIgZm9yIERPTSVkIGZhaWxlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1mbl94KG1mbiksIGQtPmRvbWFpbl9pZCk7CiAgICAgICAgICAgICAgICAgICAgIGdv dG8gdm1jZV9mYWlsZWQ7CiAgICAgICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vY29t bW9uL3BhZ2VfYWxsb2MuYyBiL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCmluZGV4IGJlNDQxNTgw MzMuLmY0NDVmN2RhZWMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCisrKyBi L3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCkBAIC0xNTY4LDIzICsxNTY4LDIzIEBAIHN0YXRpYyBp bnQgcmVzZXJ2ZV9oZWFwX3BhZ2Uoc3RydWN0IHBhZ2VfaW5mbyAqcGcpCiAKIH0KIAotaW50IG9m ZmxpbmVfcGFnZSh1bnNpZ25lZCBsb25nIG1mbiwgaW50IGJyb2tlbiwgdWludDMyX3QgKnN0YXR1 cykKK2ludCBvZmZsaW5lX3BhZ2UobWZuX3QgbWZuLCBpbnQgYnJva2VuLCB1aW50MzJfdCAqc3Rh dHVzKQogewogICAgIHVuc2lnbmVkIGxvbmcgb2xkX2luZm8gPSAwOwogICAgIHN0cnVjdCBkb21h aW4gKm93bmVyOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwogCi0gICAgaWYgKCAhbWZuX3Zh bGlkKF9tZm4obWZuKSkgKQorICAgIGlmICggIW1mbl92YWxpZChtZm4pICkKICAgICB7CiAgICAg ICAgIGRwcmludGsoWEVOTE9HX1dBUk5JTkcsCi0gICAgICAgICAgICAgICAgInRyeSB0byBvZmZs aW5lIHBhZ2Ugb3V0IG9mIHJhbmdlICVseFxuIiwgbWZuKTsKKyAgICAgICAgICAgICAgICAidHJ5 IHRvIG9mZmxpbmUgb3V0IG9mIHJhbmdlIHBhZ2UgJSJQUklfbWZuIlxuIiwgbWZuX3gobWZuKSk7 CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIAogICAgICpzdGF0dXMgPSAwOwotICAg IHBnID0gbWZuX3RvX3BhZ2UoX21mbihtZm4pKTsKKyAgICBwZyA9IG1mbl90b19wYWdlKG1mbik7 CiAKLSAgICBpZiAoIGlzX3hlbl9maXhlZF9tZm4obWZuKSApCisgICAgaWYgKCBpc194ZW5fZml4 ZWRfbWZuKG1mbl94KG1mbikpICkKICAgICB7CiAgICAgICAgICpzdGF0dXMgPSBQR19PRkZMSU5F X1hFTlBBR0UgfCBQR19PRkZMSU5FX0ZBSUxFRCB8CiAgICAgICAgICAgKERPTUlEX1hFTiA8PCBQ R19PRkZMSU5FX09XTkVSX1NISUZUKTsKQEAgLTE1OTUsNyArMTU5NSw3IEBAIGludCBvZmZsaW5l X3BhZ2UodW5zaWduZWQgbG9uZyBtZm4sIGludCBicm9rZW4sIHVpbnQzMl90ICpzdGF0dXMpCiAg ICAgICogTi5CLiB4ZW4ncyB0eHQgaW4geDg2XzY0IGlzIG1hcmtlZCByZXNlcnZlZCBhbmQgaGFu ZGxlZCBhbHJlYWR5LgogICAgICAqIEFsc28ga2V4ZWMgcmFuZ2UgaXMgcmVzZXJ2ZWQuCiAgICAg ICovCi0gICAgaWYgKCAhcGFnZV9pc19yYW1fdHlwZShtZm4sIFJBTV9UWVBFX0NPTlZFTlRJT05B TCkgKQorICAgIGlmICggIXBhZ2VfaXNfcmFtX3R5cGUobWZuX3gobWZuKSwgUkFNX1RZUEVfQ09O VkVOVElPTkFMKSApCiAgICAgewogICAgICAgICAqc3RhdHVzID0gUEdfT0ZGTElORV9GQUlMRUQg fCBQR19PRkZMSU5FX05PVF9DT05WX1JBTTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC0x Njc3LDE5ICsxNjc3LDE5IEBAIGludCBvZmZsaW5lX3BhZ2UodW5zaWduZWQgbG9uZyBtZm4sIGlu dCBicm9rZW4sIHVpbnQzMl90ICpzdGF0dXMpCiAgKiAgIFRoZSBjYWxsZXIgc2hvdWxkIG1ha2Ug c3VyZSBlbmRfcGZuIDw9IG1heF9wYWdlLAogICogICBpZiBub3QsIGV4cGFuZF9wYWdlcygpIHNo b3VsZCBiZSBjYWxsZWQgcHJpb3IgdG8gb25saW5lX3BhZ2UoKS4KICAqLwotdW5zaWduZWQgaW50 IG9ubGluZV9wYWdlKHVuc2lnbmVkIGxvbmcgbWZuLCB1aW50MzJfdCAqc3RhdHVzKQordW5zaWdu ZWQgaW50IG9ubGluZV9wYWdlKG1mbl90IG1mbiwgdWludDMyX3QgKnN0YXR1cykKIHsKICAgICB1 bnNpZ25lZCBsb25nIHgsIG54LCB5OwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwogICAgIGlu dCByZXQ7CiAKLSAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSApCisgICAgaWYgKCAhbWZu X3ZhbGlkKG1mbikgKQogICAgIHsKICAgICAgICAgZHByaW50ayhYRU5MT0dfV0FSTklORywgImNh bGwgZXhwYW5kX3BhZ2VzKCkgZmlyc3RcbiIpOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAg ICB9CiAKLSAgICBwZyA9IG1mbl90b19wYWdlKF9tZm4obWZuKSk7CisgICAgcGcgPSBtZm5fdG9f cGFnZShtZm4pOwogCiAgICAgc3Bpbl9sb2NrKCZoZWFwX2xvY2spOwogCkBAIC0xNzMwLDExICsx NzMwLDExIEBAIHVuc2lnbmVkIGludCBvbmxpbmVfcGFnZSh1bnNpZ25lZCBsb25nIG1mbiwgdWlu dDMyX3QgKnN0YXR1cykKICAgICByZXR1cm4gcmV0OwogfQogCi1pbnQgcXVlcnlfcGFnZV9vZmZs aW5lKHVuc2lnbmVkIGxvbmcgbWZuLCB1aW50MzJfdCAqc3RhdHVzKQoraW50IHF1ZXJ5X3BhZ2Vf b2ZmbGluZShtZm5fdCBtZm4sIHVpbnQzMl90ICpzdGF0dXMpCiB7CiAgICAgc3RydWN0IHBhZ2Vf aW5mbyAqcGc7CiAKLSAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSB8fCAhcGFnZV9pc19y YW1fdHlwZShtZm4sIFJBTV9UWVBFX0NPTlZFTlRJT05BTCkgKQorICAgIGlmICggIW1mbl92YWxp ZChtZm4pIHx8ICFwYWdlX2lzX3JhbV90eXBlKG1mbl94KG1mbiksIFJBTV9UWVBFX0NPTlZFTlRJ T05BTCkgKQogICAgIHsKICAgICAgICAgZHByaW50ayhYRU5MT0dfV0FSTklORywgImNhbGwgZXhw YW5kX3BhZ2VzKCkgZmlyc3RcbiIpOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsKQEAgLTE3NDMs NyArMTc0Myw3IEBAIGludCBxdWVyeV9wYWdlX29mZmxpbmUodW5zaWduZWQgbG9uZyBtZm4sIHVp bnQzMl90ICpzdGF0dXMpCiAgICAgKnN0YXR1cyA9IDA7CiAgICAgc3Bpbl9sb2NrKCZoZWFwX2xv Y2spOwogCi0gICAgcGcgPSBtZm5fdG9fcGFnZShfbWZuKG1mbikpOworICAgIHBnID0gbWZuX3Rv X3BhZ2UobWZuKTsKIAogICAgIGlmICggcGFnZV9zdGF0ZV9pcyhwZywgb2ZmbGluaW5nKSApCiAg ICAgICAgICpzdGF0dXMgfD0gUEdfT0ZGTElORV9TVEFUVVNfT0ZGTElORV9QRU5ESU5HOwpkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9zeXNjdGwuYyBiL3hlbi9jb21tb24vc3lzY3RsLmMKaW5kZXgg YzBhYTZiZGU0ZS4uYWIxNjE3OTNlNSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zeXNjdGwuYwor KysgYi94ZW4vY29tbW9uL3N5c2N0bC5jCkBAIC0xODYsNyArMTg2LDcgQEAgbG9uZyBkb19zeXNj dGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fc3lzY3RsX3QpIHVfc3lzY3RsKQogICAgIGNh c2UgWEVOX1NZU0NUTF9wYWdlX29mZmxpbmVfb3A6CiAgICAgewogICAgICAgICB1aW50MzJfdCAq c3RhdHVzLCAqcHRyOwotICAgICAgICB1bnNpZ25lZCBsb25nIHBmbjsKKyAgICAgICAgbWZuX3Qg bWZuOwogCiAgICAgICAgIHJldCA9IHhzbV9wYWdlX29mZmxpbmUoWFNNX0hPT0ssIG9wLT51LnBh Z2Vfb2ZmbGluZS5jbWQpOwogICAgICAgICBpZiAoIHJldCApCkBAIC0yMDUsMjEgKzIwNSwyMSBA QCBsb25nIGRvX3N5c2N0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9zeXNjdGxfdCkgdV9z eXNjdGwpCiAgICAgICAgIG1lbXNldChzdGF0dXMsIFBHX09GRkxJTkVfSU5WQUxJRCwgc2l6ZW9m KHVpbnQzMl90KSAqCiAgICAgICAgICAgICAgICAgICAgICAgKG9wLT51LnBhZ2Vfb2ZmbGluZS5l bmQgLSBvcC0+dS5wYWdlX29mZmxpbmUuc3RhcnQgKyAxKSk7CiAKLSAgICAgICAgZm9yICggcGZu ID0gb3AtPnUucGFnZV9vZmZsaW5lLnN0YXJ0OwotICAgICAgICAgICAgICBwZm4gPD0gb3AtPnUu cGFnZV9vZmZsaW5lLmVuZDsKLSAgICAgICAgICAgICAgcGZuICsrICkKKyAgICAgICAgZm9yICgg bWZuID0gX21mbihvcC0+dS5wYWdlX29mZmxpbmUuc3RhcnQpOworICAgICAgICAgICAgICBtZm5f eChtZm4pIDw9IG9wLT51LnBhZ2Vfb2ZmbGluZS5lbmQ7CisgICAgICAgICAgICAgIG1mbiA9IG1m bl9hZGQobWZuLCAxKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHN3aXRjaCAoIG9wLT51LnBh Z2Vfb2ZmbGluZS5jbWQgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8qIFNoYWxs IHJldmVydCBoZXIgaWYgZmFpbGVkLCBvciBsZWF2ZSBjYWxsZXIgZG8gaXQ/ICovCiAgICAgICAg ICAgICAgICAgY2FzZSBzeXNjdGxfcGFnZV9vZmZsaW5lOgotICAgICAgICAgICAgICAgICAgICBy ZXQgPSBvZmZsaW5lX3BhZ2UocGZuLCAwLCBwdHIrKyk7CisgICAgICAgICAgICAgICAgICAgIHJl dCA9IG9mZmxpbmVfcGFnZShtZm4sIDAsIHB0cisrKTsKICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgICAgICAgY2FzZSBzeXNjdGxfcGFnZV9vbmxpbmU6Ci0gICAgICAgICAg ICAgICAgICAgIHJldCA9IG9ubGluZV9wYWdlKHBmbiwgcHRyKyspOworICAgICAgICAgICAgICAg ICAgICByZXQgPSBvbmxpbmVfcGFnZShtZm4sIHB0cisrKTsKICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBzeXNjdGxfcXVlcnlfcGFnZV9vZmZsaW5lOgot ICAgICAgICAgICAgICAgICAgICByZXQgPSBxdWVyeV9wYWdlX29mZmxpbmUocGZuLCBwdHIrKyk7 CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHF1ZXJ5X3BhZ2Vfb2ZmbGluZShtZm4sIHB0cisr KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoK ICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL3hlbi9tbS5oIGIveGVuL2luY2x1ZGUveGVuL21tLmgKaW5kZXggZTk3MTE0NzIzNC4uM2Jh NzE2OGNjOSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL21tLmgKKysrIGIveGVuL2luY2x1 ZGUveGVuL21tLmgKQEAgLTIwNiw5ICsyMDYsOSBAQCB1bnNpZ25lZCBsb25nIGF2YWlsX2RvbWhl YXBfcGFnZXModm9pZCk7CiB1bnNpZ25lZCBsb25nIGF2YWlsX25vZGVfaGVhcF9wYWdlcyh1bnNp Z25lZCBpbnQpOwogI2RlZmluZSBhbGxvY19kb21oZWFwX3BhZ2UoZCxmKSAoYWxsb2NfZG9taGVh cF9wYWdlcyhkLDAsZikpCiAjZGVmaW5lIGZyZWVfZG9taGVhcF9wYWdlKHApICAoZnJlZV9kb21o ZWFwX3BhZ2VzKHAsMCkpCi11bnNpZ25lZCBpbnQgb25saW5lX3BhZ2UodW5zaWduZWQgbG9uZyBt Zm4sIHVpbnQzMl90ICpzdGF0dXMpOwotaW50IG9mZmxpbmVfcGFnZSh1bnNpZ25lZCBsb25nIG1m biwgaW50IGJyb2tlbiwgdWludDMyX3QgKnN0YXR1cyk7Ci1pbnQgcXVlcnlfcGFnZV9vZmZsaW5l KHVuc2lnbmVkIGxvbmcgbWZuLCB1aW50MzJfdCAqc3RhdHVzKTsKK3Vuc2lnbmVkIGludCBvbmxp bmVfcGFnZShtZm5fdCBtZm4sIHVpbnQzMl90ICpzdGF0dXMpOworaW50IG9mZmxpbmVfcGFnZSht Zm5fdCBtZm4sIGludCBicm9rZW4sIHVpbnQzMl90ICpzdGF0dXMpOworaW50IHF1ZXJ5X3BhZ2Vf b2ZmbGluZShtZm5fdCBtZm4sIHVpbnQzMl90ICpzdGF0dXMpOwogdW5zaWduZWQgbG9uZyB0b3Rh bF9mcmVlX3BhZ2VzKHZvaWQpOwogCiB2b2lkIGhlYXBfaW5pdF9sYXRlKHZvaWQpOwotLSAKMi4x MS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D078CC004C9 for ; Tue, 7 May 2019 15:15:37 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id ACA30205ED for ; Tue, 7 May 2019 15:15:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ACA30205ED Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hO1oS-0007NQ-Ku; Tue, 07 May 2019 15:15:24 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hO1oR-0007Mn-5r for xen-devel@lists.xenproject.org; Tue, 07 May 2019 15:15:23 +0000 X-Inumbo-ID: ee0e99ec-70da-11e9-9df6-03527982748a Received: from foss.arm.com (unknown [217.140.101.70]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTP id ee0e99ec-70da-11e9-9df6-03527982748a; Tue, 07 May 2019 15:15:21 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E073A1682; Tue, 7 May 2019 08:15:20 -0700 (PDT) Received: from e108454-lin.cambridge.arm.com (e108454-lin.cambridge.arm.com [10.1.196.50]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CC56B3F5AF; Tue, 7 May 2019 08:15:18 -0700 (PDT) From: Julien Grall To: xen-devel@lists.xenproject.org Date: Tue, 7 May 2019 16:14:50 +0100 Message-Id: <20190507151458.29350-7-julien.grall@arm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190507151458.29350-1-julien.grall@arm.com> References: <20190507151458.29350-1-julien.grall@arm.com> Subject: [Xen-devel] [PATCH 06/14] xen: Convert hotplug page function to use typesafe MFN X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190507151450.u40Kdxb6cFNk3C-jy6r4Ie7rjBr9JKKUq2mP3wamQ7s@z> Q29udmVydCBvbmxpbmVfcGFnZSwgb2ZmbGluZV9wYWdlIGFuZCBxdWVyeV9wYWdlX29mZmxpbmUg dG8gdXNlCnR5cGVzYWZlIE1GTi4KCk5vdGUsIGZvciBjbGFyaXR5LCB0aGUgd29yZHMgaGF2ZSBi ZWVuIHJlLW9yZGVyZWQgaW4gdGhlIGVycm9yIG1lc3NhZ2UKdXBkYXRlZCBieSB0aGlzIHBhdGNo LgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxq dWxpZW4uZ3JhbGxAYXJtLmNvbT4KQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KCi0tLQogICAgQ2hhbmdlczoKICAgICAgICAtIFVwZGF0ZSBlcnJvciBtZXNzYWdlCiAg ICAgICAgLSBBZGQgSmFuJ3MgYWNrZWQtYnkKLS0tCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay9t Y2FjdGlvbi5jIHwgMTggKysrKysrKysrKy0tLS0tLS0tCiB4ZW4vY29tbW9uL3BhZ2VfYWxsb2Mu YyAgICAgICAgICAgIHwgMjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9uL3N5 c2N0bC5jICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0KIHhlbi9pbmNsdWRlL3hl bi9tbS5oICAgICAgICAgICAgICAgfCAgNiArKystLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzIgaW5z ZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svbWNhY3Rpb24uYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMK aW5kZXggZTQyMjY3NDE0ZS4uNjkzMzJmYjg0ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svbWNhY3Rpb24uYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2FjdGlv bi5jCkBAIC02LDcgKzYsNyBAQAogCiBzdGF0aWMgc3RydWN0IG1jaW5mb19yZWNvdmVyeSAqCiBt Y2lfYWN0aW9uX2FkZF9wYWdlb2ZmbGluZShpbnQgYmFuaywgc3RydWN0IG1jX2luZm8gKm1pLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgbWZuLCB1aW50MzJfdCBzdGF0dXMp CisgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4sIHVpbnQzMl90IHN0YXR1cykK IHsKICAgICBzdHJ1Y3QgbWNpbmZvX3JlY292ZXJ5ICpyZWM7CiAKQEAgLTIyLDcgKzIyLDcgQEAg bWNpX2FjdGlvbl9hZGRfcGFnZW9mZmxpbmUoaW50IGJhbmssIHN0cnVjdCBtY19pbmZvICptaSwK IAogICAgIHJlYy0+bWNfYmFuayA9IGJhbms7CiAgICAgcmVjLT5hY3Rpb25fdHlwZXMgPSBNQ19B Q1RJT05fUEFHRV9PRkZMSU5FOwotICAgIHJlYy0+YWN0aW9uX2luZm8ucGFnZV9yZXRpcmUubWZu ID0gbWZuOworICAgIHJlYy0+YWN0aW9uX2luZm8ucGFnZV9yZXRpcmUubWZuID0gbWZuX3gobWZu KTsKICAgICByZWMtPmFjdGlvbl9pbmZvLnBhZ2VfcmV0aXJlLnN0YXR1cyA9IHN0YXR1czsKICAg ICByZXR1cm4gcmVjOwogfQpAQCAtNDIsNyArNDIsOCBAQCBtY19tZW1lcnJfZGhhbmRsZXIoc3Ry dWN0IG1jYV9iaW5mbyAqYmluZm8sCiAgICAgc3RydWN0IG1jaW5mb19iYW5rICpiYW5rID0gYmlu Zm8tPm1pYjsKICAgICBzdHJ1Y3QgbWNpbmZvX2dsb2JhbCAqZ2xvYmFsID0gYmluZm8tPm1pZzsK ICAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIHVuc2lnbmVkIGxvbmcgbWZuLCBnZm47CisgICAg bWZuX3QgbWZuOworICAgIHVuc2lnbmVkIGxvbmcgZ2ZuOwogICAgIHVpbnQzMl90IHN0YXR1czsK ICAgICBpbnQgdm1jZV92Y3B1aWQ7CiAgICAgdW5zaWduZWQgaW50IG1jX3ZjcHVpZDsKQEAgLTU0 LDExICs1NSwxMiBAQCBtY19tZW1lcnJfZGhhbmRsZXIoc3RydWN0IG1jYV9iaW5mbyAqYmluZm8s CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtZm4gPSBiYW5rLT5tY19hZGRyID4+IFBB R0VfU0hJRlQ7CisgICAgbWZuID0gbWFkZHJfdG9fbWZuKGJhbmstPm1jX2FkZHIpOwogICAgIGlm ICggb2ZmbGluZV9wYWdlKG1mbiwgMSwgJnN0YXR1cykgKQogICAgIHsKICAgICAgICAgZHByaW50 ayhYRU5MT0dfV0FSTklORywKLSAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIG9mZmxpbmUgcGFn ZSAlbHggZm9yIE1DRSBlcnJvclxuIiwgbWZuKTsKKyAgICAgICAgICAgICAgICAiRmFpbGVkIHRv IG9mZmxpbmUgcGFnZSAlIlBSSV9tZm4iIGZvciBNQ0UgZXJyb3JcbiIsCisgICAgICAgICAgICAg ICAgbWZuX3gobWZuKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTg5LDEwICs5MSwx MCBAQCBtY19tZW1lcnJfZGhhbmRsZXIoc3RydWN0IG1jYV9iaW5mbyAqYmluZm8sCiAgICAgICAg ICAgICAgICAgQVNTRVJUKGQpOwogICAgICAgICAgICAgICAgIGdmbiA9IGdldF9ncGZuX2Zyb21f bWZuKChiYW5rLT5tY19hZGRyKSA+PiBQQUdFX1NISUZUKTsKIAotICAgICAgICAgICAgICAgIGlm ICggdW5tbWFwX2Jyb2tlbl9wYWdlKGQsIF9tZm4obWZuKSwgZ2ZuKSApCisgICAgICAgICAgICAg ICAgaWYgKCB1bm1tYXBfYnJva2VuX3BhZ2UoZCwgbWZuLCBnZm4pICkKICAgICAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50aygiVW5tYXAgYnJva2VuIG1lbW9yeSAlbHgg Zm9yIERPTSVkIGZhaWxlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbiwgZC0+ ZG9tYWluX2lkKTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRrKCJVbm1hcCBicm9rZW4gbWVt b3J5ICUiUFJJX21mbiIgZm9yIERPTSVkIGZhaWxlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1mbl94KG1mbiksIGQtPmRvbWFpbl9pZCk7CiAgICAgICAgICAgICAgICAgICAgIGdv dG8gdm1jZV9mYWlsZWQ7CiAgICAgICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vY29t bW9uL3BhZ2VfYWxsb2MuYyBiL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCmluZGV4IGJlNDQxNTgw MzMuLmY0NDVmN2RhZWMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCisrKyBi L3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCkBAIC0xNTY4LDIzICsxNTY4LDIzIEBAIHN0YXRpYyBp bnQgcmVzZXJ2ZV9oZWFwX3BhZ2Uoc3RydWN0IHBhZ2VfaW5mbyAqcGcpCiAKIH0KIAotaW50IG9m ZmxpbmVfcGFnZSh1bnNpZ25lZCBsb25nIG1mbiwgaW50IGJyb2tlbiwgdWludDMyX3QgKnN0YXR1 cykKK2ludCBvZmZsaW5lX3BhZ2UobWZuX3QgbWZuLCBpbnQgYnJva2VuLCB1aW50MzJfdCAqc3Rh dHVzKQogewogICAgIHVuc2lnbmVkIGxvbmcgb2xkX2luZm8gPSAwOwogICAgIHN0cnVjdCBkb21h aW4gKm93bmVyOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwogCi0gICAgaWYgKCAhbWZuX3Zh bGlkKF9tZm4obWZuKSkgKQorICAgIGlmICggIW1mbl92YWxpZChtZm4pICkKICAgICB7CiAgICAg ICAgIGRwcmludGsoWEVOTE9HX1dBUk5JTkcsCi0gICAgICAgICAgICAgICAgInRyeSB0byBvZmZs aW5lIHBhZ2Ugb3V0IG9mIHJhbmdlICVseFxuIiwgbWZuKTsKKyAgICAgICAgICAgICAgICAidHJ5 IHRvIG9mZmxpbmUgb3V0IG9mIHJhbmdlIHBhZ2UgJSJQUklfbWZuIlxuIiwgbWZuX3gobWZuKSk7 CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIAogICAgICpzdGF0dXMgPSAwOwotICAg IHBnID0gbWZuX3RvX3BhZ2UoX21mbihtZm4pKTsKKyAgICBwZyA9IG1mbl90b19wYWdlKG1mbik7 CiAKLSAgICBpZiAoIGlzX3hlbl9maXhlZF9tZm4obWZuKSApCisgICAgaWYgKCBpc194ZW5fZml4 ZWRfbWZuKG1mbl94KG1mbikpICkKICAgICB7CiAgICAgICAgICpzdGF0dXMgPSBQR19PRkZMSU5F X1hFTlBBR0UgfCBQR19PRkZMSU5FX0ZBSUxFRCB8CiAgICAgICAgICAgKERPTUlEX1hFTiA8PCBQ R19PRkZMSU5FX09XTkVSX1NISUZUKTsKQEAgLTE1OTUsNyArMTU5NSw3IEBAIGludCBvZmZsaW5l X3BhZ2UodW5zaWduZWQgbG9uZyBtZm4sIGludCBicm9rZW4sIHVpbnQzMl90ICpzdGF0dXMpCiAg ICAgICogTi5CLiB4ZW4ncyB0eHQgaW4geDg2XzY0IGlzIG1hcmtlZCByZXNlcnZlZCBhbmQgaGFu ZGxlZCBhbHJlYWR5LgogICAgICAqIEFsc28ga2V4ZWMgcmFuZ2UgaXMgcmVzZXJ2ZWQuCiAgICAg ICovCi0gICAgaWYgKCAhcGFnZV9pc19yYW1fdHlwZShtZm4sIFJBTV9UWVBFX0NPTlZFTlRJT05B TCkgKQorICAgIGlmICggIXBhZ2VfaXNfcmFtX3R5cGUobWZuX3gobWZuKSwgUkFNX1RZUEVfQ09O VkVOVElPTkFMKSApCiAgICAgewogICAgICAgICAqc3RhdHVzID0gUEdfT0ZGTElORV9GQUlMRUQg fCBQR19PRkZMSU5FX05PVF9DT05WX1JBTTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC0x Njc3LDE5ICsxNjc3LDE5IEBAIGludCBvZmZsaW5lX3BhZ2UodW5zaWduZWQgbG9uZyBtZm4sIGlu dCBicm9rZW4sIHVpbnQzMl90ICpzdGF0dXMpCiAgKiAgIFRoZSBjYWxsZXIgc2hvdWxkIG1ha2Ug c3VyZSBlbmRfcGZuIDw9IG1heF9wYWdlLAogICogICBpZiBub3QsIGV4cGFuZF9wYWdlcygpIHNo b3VsZCBiZSBjYWxsZWQgcHJpb3IgdG8gb25saW5lX3BhZ2UoKS4KICAqLwotdW5zaWduZWQgaW50 IG9ubGluZV9wYWdlKHVuc2lnbmVkIGxvbmcgbWZuLCB1aW50MzJfdCAqc3RhdHVzKQordW5zaWdu ZWQgaW50IG9ubGluZV9wYWdlKG1mbl90IG1mbiwgdWludDMyX3QgKnN0YXR1cykKIHsKICAgICB1 bnNpZ25lZCBsb25nIHgsIG54LCB5OwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwogICAgIGlu dCByZXQ7CiAKLSAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSApCisgICAgaWYgKCAhbWZu X3ZhbGlkKG1mbikgKQogICAgIHsKICAgICAgICAgZHByaW50ayhYRU5MT0dfV0FSTklORywgImNh bGwgZXhwYW5kX3BhZ2VzKCkgZmlyc3RcbiIpOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAg ICB9CiAKLSAgICBwZyA9IG1mbl90b19wYWdlKF9tZm4obWZuKSk7CisgICAgcGcgPSBtZm5fdG9f cGFnZShtZm4pOwogCiAgICAgc3Bpbl9sb2NrKCZoZWFwX2xvY2spOwogCkBAIC0xNzMwLDExICsx NzMwLDExIEBAIHVuc2lnbmVkIGludCBvbmxpbmVfcGFnZSh1bnNpZ25lZCBsb25nIG1mbiwgdWlu dDMyX3QgKnN0YXR1cykKICAgICByZXR1cm4gcmV0OwogfQogCi1pbnQgcXVlcnlfcGFnZV9vZmZs aW5lKHVuc2lnbmVkIGxvbmcgbWZuLCB1aW50MzJfdCAqc3RhdHVzKQoraW50IHF1ZXJ5X3BhZ2Vf b2ZmbGluZShtZm5fdCBtZm4sIHVpbnQzMl90ICpzdGF0dXMpCiB7CiAgICAgc3RydWN0IHBhZ2Vf aW5mbyAqcGc7CiAKLSAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSB8fCAhcGFnZV9pc19y YW1fdHlwZShtZm4sIFJBTV9UWVBFX0NPTlZFTlRJT05BTCkgKQorICAgIGlmICggIW1mbl92YWxp ZChtZm4pIHx8ICFwYWdlX2lzX3JhbV90eXBlKG1mbl94KG1mbiksIFJBTV9UWVBFX0NPTlZFTlRJ T05BTCkgKQogICAgIHsKICAgICAgICAgZHByaW50ayhYRU5MT0dfV0FSTklORywgImNhbGwgZXhw YW5kX3BhZ2VzKCkgZmlyc3RcbiIpOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsKQEAgLTE3NDMs NyArMTc0Myw3IEBAIGludCBxdWVyeV9wYWdlX29mZmxpbmUodW5zaWduZWQgbG9uZyBtZm4sIHVp bnQzMl90ICpzdGF0dXMpCiAgICAgKnN0YXR1cyA9IDA7CiAgICAgc3Bpbl9sb2NrKCZoZWFwX2xv Y2spOwogCi0gICAgcGcgPSBtZm5fdG9fcGFnZShfbWZuKG1mbikpOworICAgIHBnID0gbWZuX3Rv X3BhZ2UobWZuKTsKIAogICAgIGlmICggcGFnZV9zdGF0ZV9pcyhwZywgb2ZmbGluaW5nKSApCiAg ICAgICAgICpzdGF0dXMgfD0gUEdfT0ZGTElORV9TVEFUVVNfT0ZGTElORV9QRU5ESU5HOwpkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9zeXNjdGwuYyBiL3hlbi9jb21tb24vc3lzY3RsLmMKaW5kZXgg YzBhYTZiZGU0ZS4uYWIxNjE3OTNlNSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zeXNjdGwuYwor KysgYi94ZW4vY29tbW9uL3N5c2N0bC5jCkBAIC0xODYsNyArMTg2LDcgQEAgbG9uZyBkb19zeXNj dGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fc3lzY3RsX3QpIHVfc3lzY3RsKQogICAgIGNh c2UgWEVOX1NZU0NUTF9wYWdlX29mZmxpbmVfb3A6CiAgICAgewogICAgICAgICB1aW50MzJfdCAq c3RhdHVzLCAqcHRyOwotICAgICAgICB1bnNpZ25lZCBsb25nIHBmbjsKKyAgICAgICAgbWZuX3Qg bWZuOwogCiAgICAgICAgIHJldCA9IHhzbV9wYWdlX29mZmxpbmUoWFNNX0hPT0ssIG9wLT51LnBh Z2Vfb2ZmbGluZS5jbWQpOwogICAgICAgICBpZiAoIHJldCApCkBAIC0yMDUsMjEgKzIwNSwyMSBA QCBsb25nIGRvX3N5c2N0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9zeXNjdGxfdCkgdV9z eXNjdGwpCiAgICAgICAgIG1lbXNldChzdGF0dXMsIFBHX09GRkxJTkVfSU5WQUxJRCwgc2l6ZW9m KHVpbnQzMl90KSAqCiAgICAgICAgICAgICAgICAgICAgICAgKG9wLT51LnBhZ2Vfb2ZmbGluZS5l bmQgLSBvcC0+dS5wYWdlX29mZmxpbmUuc3RhcnQgKyAxKSk7CiAKLSAgICAgICAgZm9yICggcGZu ID0gb3AtPnUucGFnZV9vZmZsaW5lLnN0YXJ0OwotICAgICAgICAgICAgICBwZm4gPD0gb3AtPnUu cGFnZV9vZmZsaW5lLmVuZDsKLSAgICAgICAgICAgICAgcGZuICsrICkKKyAgICAgICAgZm9yICgg bWZuID0gX21mbihvcC0+dS5wYWdlX29mZmxpbmUuc3RhcnQpOworICAgICAgICAgICAgICBtZm5f eChtZm4pIDw9IG9wLT51LnBhZ2Vfb2ZmbGluZS5lbmQ7CisgICAgICAgICAgICAgIG1mbiA9IG1m bl9hZGQobWZuLCAxKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHN3aXRjaCAoIG9wLT51LnBh Z2Vfb2ZmbGluZS5jbWQgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8qIFNoYWxs IHJldmVydCBoZXIgaWYgZmFpbGVkLCBvciBsZWF2ZSBjYWxsZXIgZG8gaXQ/ICovCiAgICAgICAg ICAgICAgICAgY2FzZSBzeXNjdGxfcGFnZV9vZmZsaW5lOgotICAgICAgICAgICAgICAgICAgICBy ZXQgPSBvZmZsaW5lX3BhZ2UocGZuLCAwLCBwdHIrKyk7CisgICAgICAgICAgICAgICAgICAgIHJl dCA9IG9mZmxpbmVfcGFnZShtZm4sIDAsIHB0cisrKTsKICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgICAgICAgY2FzZSBzeXNjdGxfcGFnZV9vbmxpbmU6Ci0gICAgICAgICAg ICAgICAgICAgIHJldCA9IG9ubGluZV9wYWdlKHBmbiwgcHRyKyspOworICAgICAgICAgICAgICAg ICAgICByZXQgPSBvbmxpbmVfcGFnZShtZm4sIHB0cisrKTsKICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBzeXNjdGxfcXVlcnlfcGFnZV9vZmZsaW5lOgot ICAgICAgICAgICAgICAgICAgICByZXQgPSBxdWVyeV9wYWdlX29mZmxpbmUocGZuLCBwdHIrKyk7 CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHF1ZXJ5X3BhZ2Vfb2ZmbGluZShtZm4sIHB0cisr KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoK ICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL3hlbi9tbS5oIGIveGVuL2luY2x1ZGUveGVuL21tLmgKaW5kZXggZTk3MTE0NzIzNC4uM2Jh NzE2OGNjOSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL21tLmgKKysrIGIveGVuL2luY2x1 ZGUveGVuL21tLmgKQEAgLTIwNiw5ICsyMDYsOSBAQCB1bnNpZ25lZCBsb25nIGF2YWlsX2RvbWhl YXBfcGFnZXModm9pZCk7CiB1bnNpZ25lZCBsb25nIGF2YWlsX25vZGVfaGVhcF9wYWdlcyh1bnNp Z25lZCBpbnQpOwogI2RlZmluZSBhbGxvY19kb21oZWFwX3BhZ2UoZCxmKSAoYWxsb2NfZG9taGVh cF9wYWdlcyhkLDAsZikpCiAjZGVmaW5lIGZyZWVfZG9taGVhcF9wYWdlKHApICAoZnJlZV9kb21o ZWFwX3BhZ2VzKHAsMCkpCi11bnNpZ25lZCBpbnQgb25saW5lX3BhZ2UodW5zaWduZWQgbG9uZyBt Zm4sIHVpbnQzMl90ICpzdGF0dXMpOwotaW50IG9mZmxpbmVfcGFnZSh1bnNpZ25lZCBsb25nIG1m biwgaW50IGJyb2tlbiwgdWludDMyX3QgKnN0YXR1cyk7Ci1pbnQgcXVlcnlfcGFnZV9vZmZsaW5l KHVuc2lnbmVkIGxvbmcgbWZuLCB1aW50MzJfdCAqc3RhdHVzKTsKK3Vuc2lnbmVkIGludCBvbmxp bmVfcGFnZShtZm5fdCBtZm4sIHVpbnQzMl90ICpzdGF0dXMpOworaW50IG9mZmxpbmVfcGFnZSht Zm5fdCBtZm4sIGludCBicm9rZW4sIHVpbnQzMl90ICpzdGF0dXMpOworaW50IHF1ZXJ5X3BhZ2Vf b2ZmbGluZShtZm5fdCBtZm4sIHVpbnQzMl90ICpzdGF0dXMpOwogdW5zaWduZWQgbG9uZyB0b3Rh bF9mcmVlX3BhZ2VzKHZvaWQpOwogCiB2b2lkIGhlYXBfaW5pdF9sYXRlKHZvaWQpOwotLSAKMi4x MS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==