From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 4/7] x86/mm: Combine create_grant_{pte, va}_mapping() Date: Tue, 12 Sep 2017 13:14:43 +0100 Message-ID: <1505218486-4416-5-git-send-email-andrew.cooper3@citrix.com> References: <1505218486-4416-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1505218486-4416-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org Y3JlYXRlX2dyYW50X3twdGUsdmF9X21hcHBpbmcoKSBhcmUgbmVhcmx5IGlkZW50aWNhbDsgYWxs IHRoYXQgaXMgcmVhbGx5CmRpZmZlcmVudCBiZXR3ZWVuIHRoZW0gaXMgaG93IHRoZXkgY29udmVy dCB0aGVpciBhZGRyIHBhcmFtZXRlciB0byB0aGUgcHRlIHRvCmluc3RhbGwgdGhlIGdyYW50IGlu dG8uCgpSZWltcGxlbWVudCB0aGVpciBsb2dpYyBpbiBjcmVhdGVfZ3JhbnRfcHZfbWFwcGluZygp IGluIGEgbW9zdGx5IGNvbW1vbiB3YXkuCgpObyAoaW50ZW5kZWQpIGNoYW5nZSBpbiBiZWhhdmlv dXIgZnJvbSBhIGd1ZXN0cyBwb2ludCBvZiB2aWV3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJl dWxpY2hAc3VzZS5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIHhl bi9hcmNoL3g4Ni9tbS5jIHwgMTc0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDEx NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNo L3g4Ni9tbS5jCmluZGV4IGE4NDhkN2QuLmUwOGI0YTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0zODMxLDY2ICszODMxLDYgQEAgc3Rh dGljIHVuc2lnbmVkIGludCBncmFudF90b19wdGVfZmxhZ3ModW5zaWduZWQgaW50IGdyYW50X2Zs YWdzLAogICAgIHJldHVybiBwdGVfZmxhZ3M7CiB9CiAKLXN0YXRpYyBpbnQgY3JlYXRlX2dyYW50 X3B0ZV9tYXBwaW5nKAotICAgIHVpbnQ2NF90IHB0ZV9hZGRyLCBsMV9wZ2VudHJ5X3QgbmwxZSwg c3RydWN0IHZjcHUgKnYpCi17Ci0gICAgaW50IHJjID0gR05UU1Rfb2theTsKLSAgICB2b2lkICp2 YTsKLSAgICB1bnNpZ25lZCBsb25nIGdtZm4sIG1mbjsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZvICpw YWdlOwotICAgIGwxX3BnZW50cnlfdCBvbDFlOwotICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5k b21haW47Ci0KLSAgICBpZiAoICFJU19BTElHTkVEKHB0ZV9hZGRyLCBzaXplb2YobmwxZSkpICkK LSAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7Ci0KLSAgICBubDFlID0gYWRqdXN0 X2d1ZXN0X2wxZShubDFlLCBkKTsKLQotICAgIGdtZm4gPSBwdGVfYWRkciA+PiBQQUdFX1NISUZU OwotICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnbWZuLCBOVUxMLCBQMk1fQUxMT0Mp OwotCi0gICAgaWYgKCB1bmxpa2VseSghcGFnZSkgKQotICAgIHsKLSAgICAgICAgZ2RwcmludGso WEVOTE9HX1dBUk5JTkcsICJDb3VsZCBub3QgZ2V0IHBhZ2UgZm9yIG5vcm1hbCB1cGRhdGVcbiIp OwotICAgICAgICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKLSAgICB9Ci0KLSAgICBtZm4g PSBtZm5feChwYWdlX3RvX21mbihwYWdlKSk7Ci0gICAgdmEgPSBtYXBfZG9tYWluX3BhZ2UoX21m bihtZm4pKTsKLSAgICB2YSA9ICh2b2lkICopKCh1bnNpZ25lZCBsb25nKXZhICsgKCh1bnNpZ25l ZCBsb25nKXB0ZV9hZGRyICYgflBBR0VfTUFTSykpOwotCi0gICAgaWYgKCAhcGFnZV9sb2NrKHBh Z2UpICkKLSAgICB7Ci0gICAgICAgIHJjID0gR05UU1RfZ2VuZXJhbF9lcnJvcjsKLSAgICAgICAg Z290byBmYWlsZWQ7Ci0gICAgfQotCi0gICAgaWYgKCAocGFnZS0+dS5pbnVzZS50eXBlX2luZm8g JiBQR1RfdHlwZV9tYXNrKSAhPSBQR1RfbDFfcGFnZV90YWJsZSApCi0gICAgewotICAgICAgICBw YWdlX3VubG9jayhwYWdlKTsKLSAgICAgICAgcmMgPSBHTlRTVF9nZW5lcmFsX2Vycm9yOwotICAg ICAgICBnb3RvIGZhaWxlZDsKLSAgICB9Ci0KLSAgICBvbDFlID0gKihsMV9wZ2VudHJ5X3QgKil2 YTsKLSAgICBpZiAoICFVUERBVEVfRU5UUlkobDEsIChsMV9wZ2VudHJ5X3QgKil2YSwgb2wxZSwg bmwxZSwgbWZuLCB2LCAwKSApCi0gICAgewotICAgICAgICBwYWdlX3VubG9jayhwYWdlKTsKLSAg ICAgICAgcmMgPSBHTlRTVF9nZW5lcmFsX2Vycm9yOwotICAgICAgICBnb3RvIGZhaWxlZDsKLSAg ICB9Ci0KLSAgICBwYWdlX3VubG9jayhwYWdlKTsKLQotICAgIHB1dF9wYWdlX2Zyb21fbDFlKG9s MWUsIGQpOwotCi0gZmFpbGVkOgotICAgIHVubWFwX2RvbWFpbl9wYWdlKHZhKTsKLSAgICBwdXRf cGFnZShwYWdlKTsKLQotICAgIHJldHVybiByYzsKLX0KLQogc3RhdGljIGludCBkZXN0cm95X2dy YW50X3B0ZV9tYXBwaW5nKAogICAgIHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUs IHVuc2lnbmVkIGludCBncmFudF9wdGVfZmxhZ3MsCiAgICAgc3RydWN0IGRvbWFpbiAqZCkKQEAg LTM5ODMsNjAgKzM5MjMsNiBAQCBzdGF0aWMgaW50IGRlc3Ryb3lfZ3JhbnRfcHRlX21hcHBpbmco CiAgICAgcmV0dXJuIHJjOwogfQogCi0KLXN0YXRpYyBpbnQgY3JlYXRlX2dyYW50X3ZhX21hcHBp bmcoCi0gICAgdW5zaWduZWQgbG9uZyB2YSwgbDFfcGdlbnRyeV90IG5sMWUsIHN0cnVjdCB2Y3B1 ICp2KQotewotICAgIGwxX3BnZW50cnlfdCAqcGwxZSwgb2wxZTsKLSAgICBzdHJ1Y3QgZG9tYWlu ICpkID0gdi0+ZG9tYWluOwotICAgIG1mbl90IGdsMW1mbjsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZv ICpsMXBnOwotICAgIGludCBva2F5OwotCi0gICAgbmwxZSA9IGFkanVzdF9ndWVzdF9sMWUobmwx ZSwgZCk7Ci0KLSAgICBwbDFlID0gbWFwX2d1ZXN0X2wxZSh2YSwgJmdsMW1mbik7Ci0gICAgaWYg KCAhcGwxZSApCi0gICAgewotICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIkNvdWxk IG5vdCBmaW5kIEwxIFBURSBmb3IgYWRkcmVzcyAlbHhcbiIsIHZhKTsKLSAgICAgICAgcmV0dXJu IEdOVFNUX2dlbmVyYWxfZXJyb3I7Ci0gICAgfQotCi0gICAgaWYgKCAhZ2V0X3BhZ2VfZnJvbV9t Zm4oZ2wxbWZuLCBjdXJyZW50LT5kb21haW4pICkKLSAgICB7Ci0gICAgICAgIHVubWFwX2RvbWFp bl9wYWdlKHBsMWUpOwotICAgICAgICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKLSAgICB9 Ci0KLSAgICBsMXBnID0gbWZuX3RvX3BhZ2UoZ2wxbWZuKTsKLSAgICBpZiAoICFwYWdlX2xvY2so bDFwZykgKQotICAgIHsKLSAgICAgICAgcHV0X3BhZ2UobDFwZyk7Ci0gICAgICAgIHVubWFwX2Rv bWFpbl9wYWdlKHBsMWUpOwotICAgICAgICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKLSAg ICB9Ci0KLSAgICBpZiAoIChsMXBnLT51LmludXNlLnR5cGVfaW5mbyAmIFBHVF90eXBlX21hc2sp ICE9IFBHVF9sMV9wYWdlX3RhYmxlICkKLSAgICB7Ci0gICAgICAgIHBhZ2VfdW5sb2NrKGwxcGcp OwotICAgICAgICBwdXRfcGFnZShsMXBnKTsKLSAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UocGwx ZSk7Ci0gICAgICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9yOwotICAgIH0KLQotICAgIG9s MWUgPSAqcGwxZTsKLSAgICBva2F5ID0gVVBEQVRFX0VOVFJZKGwxLCBwbDFlLCBvbDFlLCBubDFl LCBtZm5feChnbDFtZm4pLCB2LCAwKTsKLQotICAgIHBhZ2VfdW5sb2NrKGwxcGcpOwotICAgIHB1 dF9wYWdlKGwxcGcpOwotICAgIHVubWFwX2RvbWFpbl9wYWdlKHBsMWUpOwotCi0gICAgaWYgKCBv a2F5ICkKLSAgICAgICAgcHV0X3BhZ2VfZnJvbV9sMWUob2wxZSwgZCk7Ci0KLSAgICByZXR1cm4g b2theSA/IEdOVFNUX29rYXkgOiBHTlRTVF9nZW5lcmFsX2Vycm9yOwotfQotCiBzdGF0aWMgaW50 IHJlcGxhY2VfZ3JhbnRfdmFfbWFwcGluZygKICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2ln bmVkIGxvbmcgZnJhbWUsIHVuc2lnbmVkIGludCBncmFudF9wdGVfZmxhZ3MsCiAgICAgbDFfcGdl bnRyeV90IG5sMWUsIHN0cnVjdCB2Y3B1ICp2KQpAQCAtNDEyNiwxMyArNDAxMiw2NyBAQCBpbnQg Y3JlYXRlX2dyYW50X3B2X21hcHBpbmcodWludDY0X3QgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFt ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsIHVuc2ln bmVkIGludCBjYWNoZV9mbGFncykKIHsKICAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7 Ci0gICAgbDFfcGdlbnRyeV90IG5sMWU7CisgICAgc3RydWN0IGRvbWFpbiAqY3VycmQgPSBjdXJy LT5kb21haW47CisgICAgbDFfcGdlbnRyeV90IG5sMWUsIG9sMWUsICpwbDFlOworICAgIHN0cnVj dCBwYWdlX2luZm8gKnBhZ2U7CisgICAgbWZuX3QgZ2wxbWZuOworICAgIGludCByYyA9IEdOVFNU X2dlbmVyYWxfZXJyb3I7CiAKICAgICBubDFlID0gbDFlX2Zyb21fcGZuKGZyYW1lLCBncmFudF90 b19wdGVfZmxhZ3MoZmxhZ3MsIGNhY2hlX2ZsYWdzKSk7CisgICAgbmwxZSA9IGFkanVzdF9ndWVz dF9sMWUobmwxZSwgY3VycmQpOwogCisgICAgLyoKKyAgICAgKiBUaGUgbWVhbmluZyBvZiBhZGRy IGRlcGVuZHMgb24gR05UTUFQX2NvbnRhaW5zX3B0ZS4gIEl0IGlzIGVpdGhlciBhCisgICAgICog bWFjaGluZSBhZGRyZXNzIG9mIGFuIEwxZSB0aGUgZ3Vlc3QgaGFzIG5vbWluYXRlZCB0byBiZSBh bHRlcmVkLCBvciBhCisgICAgICogbGluZWFyIGFkZHJlc3Mgd2UgbmVlZCB0byBsb29rIHVwIHRo ZSBhcHByb3ByaWF0ZSBMMWUgZm9yLgorICAgICAqLwogICAgIGlmICggZmxhZ3MgJiBHTlRNQVBf Y29udGFpbnNfcHRlICkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZV9ncmFudF9wdGVfbWFwcGluZyhh ZGRyLCBubDFlLCBjdXJyKTsKLSAgICByZXR1cm4gY3JlYXRlX2dyYW50X3ZhX21hcHBpbmcoYWRk ciwgbmwxZSwgY3Vycik7CisgICAgeworICAgICAgICAvKiBhZGRyIG11c3QgYmUgc3VpdGFibHkg YWxpZ25lZCwgb3Igd2Ugd2lsbCBjb3JydXB0IGFkamFjZW50IHB0ZXMuICovCisgICAgICAgIGlm ICggIUlTX0FMSUdORUQoYWRkciwgc2l6ZW9mKG5sMWUpKSApCisgICAgICAgICAgICBnb3RvIG91 dDsKKworICAgICAgICBnbDFtZm4gPSBfbWZuKGFkZHIgPj4gUEFHRV9TSElGVCk7CisKKyAgICAg ICAgaWYgKCAhZ2V0X3BhZ2VfZnJvbV9tZm4oZ2wxbWZuLCBjdXJyZCkgKQorICAgICAgICAgICAg Z290byBvdXQ7CisKKyAgICAgICAgcGwxZSA9IG1hcF9kb21haW5fcGFnZShnbDFtZm4pICsgKGFk ZHIgJiB+UEFHRV9NQVNLKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgcGwxZSA9 IG1hcF9ndWVzdF9sMWUoYWRkciwgJmdsMW1mbik7CisKKyAgICAgICAgaWYgKCAhcGwxZSApCisg ICAgICAgICAgICBnb3RvIG91dDsKKworICAgICAgICBpZiAoICFnZXRfcGFnZV9mcm9tX21mbihn bDFtZm4sIGN1cnJkKSApCisgICAgICAgICAgICBnb3RvIG91dF91bm1hcDsKKyAgICB9CisKKyAg ICBwYWdlID0gbWZuX3RvX3BhZ2UoZ2wxbWZuKTsKKyAgICBpZiAoICFwYWdlX2xvY2socGFnZSkg KQorICAgICAgICBnb3RvIG91dF9wdXQ7CisKKyAgICBpZiAoIChwYWdlLT51LmludXNlLnR5cGVf aW5mbyAmIFBHVF90eXBlX21hc2spICE9IFBHVF9sMV9wYWdlX3RhYmxlICkKKyAgICAgICAgZ290 byBvdXRfdW5sb2NrOworCisgICAgb2wxZSA9ICpwbDFlOworICAgIGlmICggVVBEQVRFX0VOVFJZ KGwxLCBwbDFlLCBvbDFlLCBubDFlLCBtZm5feChnbDFtZm4pLCBjdXJyLCAwKSApCisgICAgICAg IHJjID0gR05UU1Rfb2theTsKKworIG91dF91bmxvY2s6CisgICAgcGFnZV91bmxvY2socGFnZSk7 Cisgb3V0X3B1dDoKKyAgICBwdXRfcGFnZShwYWdlKTsKKyBvdXRfdW5tYXA6CisgICAgdW5tYXBf ZG9tYWluX3BhZ2UocGwxZSk7CisKKyAgICBpZiAoIHJjID09IEdOVFNUX29rYXkgKQorICAgICAg ICBwdXRfcGFnZV9mcm9tX2wxZShvbDFlLCBjdXJyZCk7CisKKyBvdXQ6CisgICAgcmV0dXJuIHJj OwogfQogCiBpbnQgcmVwbGFjZV9ncmFudF9wdl9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2ln bmVkIGxvbmcgZnJhbWUsCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=