From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Christopherson Date: Tue, 17 Dec 2019 20:40:31 +0000 Subject: [PATCH v4 09/19] KVM: Move setting of memslot into helper routine Message-Id: <20191217204041.10815-10-sean.j.christopherson@intel.com> List-Id: References: <20191217204041.10815-1-sean.j.christopherson@intel.com> In-Reply-To: <20191217204041.10815-1-sean.j.christopherson@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="macroman" Content-Transfer-Encoding: base64 To: James Hogan , Paul Mackerras , Christian Borntraeger , Janosch Frank , Paolo Bonzini , Marc Zyngier Cc: David Hildenbrand , Cornelia Huck , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , James Morse , Julien Thierry , Suzuki K Poulose , linux-mips@vger.kernel.org, kvm-ppc@vger.kernel.org, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org, Christoffer Dall , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= U3BsaXQgb3V0IHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2Ygc2V0dGluZyBhIG1lbXNsb3QgaW50 byBhIHNlcGFyYXRlCmhlbHBlciBpbiBwcmVwYXJhdGlvbiBmb3IgbW92aW5nIG1lbXNsb3QgZGVs ZXRpb24gaW50byBpdHMgb3duIHJvdXRpbmUuCgpUZXN0ZWQtYnk6IENocmlzdG9mZmVyIERhbGwg PGNocmlzdG9mZmVyLmRhbGxAYXJtLmNvbT4KUmV2aWV3ZWQtYnk6IFBoaWxpcHBlIE1hdGhpZXUt RGF1ZMOpIDxmNGJ1Z0BhbXNhdC5vcmc+ClNpZ25lZC1vZmYtYnk6IFNlYW4gQ2hyaXN0b3BoZXJz b24gPHNlYW4uai5jaHJpc3RvcGhlcnNvbkBpbnRlbC5jb20+Ci0tLQogdmlydC9rdm0va3ZtX21h aW4uYyB8IDEwNiArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3ZpcnQva3ZtL2t2bV9tYWluLmMgYi92aXJ0L2t2bS9rdm1fbWFpbi5jCmluZGV4IDlj NDg4YzY1MzI1Ny4uMzY2M2FjMjI5YzRkIDEwMDY0NAotLS0gYS92aXJ0L2t2bS9rdm1fbWFpbi5j CisrKyBiL3ZpcnQva3ZtL2t2bV9tYWluLmMKQEAgLTk4Niw2ICs5ODYsNjYgQEAgc3RhdGljIHN0 cnVjdCBrdm1fbWVtc2xvdHMgKmluc3RhbGxfbmV3X21lbXNsb3RzKHN0cnVjdCBrdm0gKmt2bSwK IAlyZXR1cm4gb2xkX21lbXNsb3RzOwogfQogCitzdGF0aWMgaW50IGt2bV9zZXRfbWVtc2xvdChz dHJ1Y3Qga3ZtICprdm0sCisJCQkgICBjb25zdCBzdHJ1Y3Qga3ZtX3VzZXJzcGFjZV9tZW1vcnlf cmVnaW9uICptZW0sCisJCQkgICBjb25zdCBzdHJ1Y3Qga3ZtX21lbW9yeV9zbG90ICpvbGQsCisJ CQkgICBzdHJ1Y3Qga3ZtX21lbW9yeV9zbG90ICpuZXcsIGludCBhc19pZCwKKwkJCSAgIGVudW0g a3ZtX21yX2NoYW5nZSBjaGFuZ2UpCit7CisJc3RydWN0IGt2bV9tZW1vcnlfc2xvdCAqc2xvdDsK KwlzdHJ1Y3Qga3ZtX21lbXNsb3RzICpzbG90czsKKwlpbnQgcjsKKworCXNsb3RzID0ga3Z6YWxs b2Moc2l6ZW9mKHN0cnVjdCBrdm1fbWVtc2xvdHMpLCBHRlBfS0VSTkVMX0FDQ09VTlQpOworCWlm ICghc2xvdHMpCisJCXJldHVybiAtRU5PTUVNOworCW1lbWNweShzbG90cywgX19rdm1fbWVtc2xv dHMoa3ZtLCBhc19pZCksIHNpemVvZihzdHJ1Y3Qga3ZtX21lbXNsb3RzKSk7CisKKwlpZiAoY2hh bmdlID0gS1ZNX01SX0RFTEVURSB8fCBjaGFuZ2UgPSBLVk1fTVJfTU9WRSkgeworCQkvKgorCQkg KiBOb3RlLCB0aGUgSU5WQUxJRCBmbGFnIG5lZWRzIHRvIGJlIGluIHRoZSBhcHByb3ByaWF0ZSBl bnRyeQorCQkgKiBpbiB0aGUgZnJlc2hseSBhbGxvY2F0ZWQgbWVtc2xvdHMsIG5vdCBpbiBAb2xk IG9yIEBuZXcuCisJCSAqLworCQlzbG90ID0gaWRfdG9fbWVtc2xvdChzbG90cywgb2xkLT5pZCk7 CisJCXNsb3QtPmZsYWdzIHw9IEtWTV9NRU1TTE9UX0lOVkFMSUQ7CisKKwkJLyoKKwkJICogV2Ug Y2FuIHJlLXVzZSB0aGUgb2xkIG1lbXNsb3RzLCB0aGUgb25seSBkaWZmZXJlbmNlIGZyb20gdGhl CisJCSAqIG5ld2x5IGluc3RhbGxlZCBtZW1zbG90cyBpcyB0aGUgaW52YWxpZCBmbGFnLCB3aGlj aCB3aWxsIGdldAorCQkgKiBkcm9wcGVkIGJ5IHVwZGF0ZV9tZW1zbG90cyBhbnl3YXkuICBXZSds bCBhbHNvIHJldmVydCB0byB0aGUKKwkJICogb2xkIG1lbXNsb3RzIGlmIHByZXBhcmluZyB0aGUg bmV3IG1lbW9yeSByZWdpb24gZmFpbHMuCisJCSAqLworCQlzbG90cyA9IGluc3RhbGxfbmV3X21l bXNsb3RzKGt2bSwgYXNfaWQsIHNsb3RzKTsKKworCQkvKiBGcm9tIHRoaXMgcG9pbnQgbm8gbmV3 IHNoYWRvdyBwYWdlcyBwb2ludGluZyB0byBhIGRlbGV0ZWQsCisJCSAqIG9yIG1vdmVkLCBtZW1z bG90IHdpbGwgYmUgY3JlYXRlZC4KKwkJICoKKwkJICogdmFsaWRhdGlvbiBvZiBzcC0+Z2ZuIGhh cHBlbnMgaW46CisJCSAqCS0gZ2ZuX3RvX2h2YSAoa3ZtX3JlYWRfZ3Vlc3QsIGdmbl90b19wZm4p CisJCSAqCS0ga3ZtX2lzX3Zpc2libGVfZ2ZuIChtbXVfY2hlY2tfcm9vdHMpCisJCSAqLworCQlr dm1fYXJjaF9mbHVzaF9zaGFkb3dfbWVtc2xvdChrdm0sIHNsb3QpOworCX0KKworCXIgPSBrdm1f YXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24oa3ZtLCBuZXcsIG1lbSwgY2hhbmdlKTsKKwlpZiAo cikKKwkJZ290byBvdXRfc2xvdHM7CisKKwl1cGRhdGVfbWVtc2xvdHMoc2xvdHMsIG5ldywgY2hh bmdlKTsKKwlzbG90cyA9IGluc3RhbGxfbmV3X21lbXNsb3RzKGt2bSwgYXNfaWQsIHNsb3RzKTsK KworCWt2bV9hcmNoX2NvbW1pdF9tZW1vcnlfcmVnaW9uKGt2bSwgbWVtLCBvbGQsIG5ldywgY2hh bmdlKTsKKworCWt2ZnJlZShzbG90cyk7CisJcmV0dXJuIDA7CisKK291dF9zbG90czoKKwlpZiAo Y2hhbmdlID0gS1ZNX01SX0RFTEVURSB8fCBjaGFuZ2UgPSBLVk1fTVJfTU9WRSkKKwkJc2xvdHMg PSBpbnN0YWxsX25ld19tZW1zbG90cyhrdm0sIGFzX2lkLCBzbG90cyk7CisJa3ZmcmVlKHNsb3Rz KTsKKwlyZXR1cm4gcjsKK30KKwogLyoKICAqIEFsbG9jYXRlIHNvbWUgbWVtb3J5IGFuZCBnaXZl IGl0IGFuIGFkZHJlc3MgaW4gdGhlIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MKICAqIHNwYWNlLgpA QCAtMTAwMiw3ICsxMDYyLDYgQEAgaW50IF9fa3ZtX3NldF9tZW1vcnlfcmVnaW9uKHN0cnVjdCBr dm0gKmt2bSwKIAl1bnNpZ25lZCBsb25nIG5wYWdlczsKIAlzdHJ1Y3Qga3ZtX21lbW9yeV9zbG90 ICpzbG90OwogCXN0cnVjdCBrdm1fbWVtb3J5X3Nsb3Qgb2xkLCBuZXc7Ci0Jc3RydWN0IGt2bV9t ZW1zbG90cyAqc2xvdHM7CiAJaW50IGFzX2lkLCBpZDsKIAllbnVtIGt2bV9tcl9jaGFuZ2UgY2hh bmdlOwogCkBAIC0xMDg5LDU4ICsxMTQ4LDE5IEBAIGludCBfX2t2bV9zZXRfbWVtb3J5X3JlZ2lv bihzdHJ1Y3Qga3ZtICprdm0sCiAJCQlyZXR1cm4gcjsKIAl9CiAKLQlzbG90cyA9IGt2emFsbG9j KHNpemVvZihzdHJ1Y3Qga3ZtX21lbXNsb3RzKSwgR0ZQX0tFUk5FTF9BQ0NPVU5UKTsKLQlpZiAo IXNsb3RzKSB7Ci0JCXIgPSAtRU5PTUVNOwotCQlnb3RvIG91dF9iaXRtYXA7Ci0JfQotCW1lbWNw eShzbG90cywgX19rdm1fbWVtc2xvdHMoa3ZtLCBhc19pZCksIHNpemVvZihzdHJ1Y3Qga3ZtX21l bXNsb3RzKSk7Ci0KLQlpZiAoKGNoYW5nZSA9IEtWTV9NUl9ERUxFVEUpIHx8IChjaGFuZ2UgPSBL Vk1fTVJfTU9WRSkpIHsKLQkJc2xvdCA9IGlkX3RvX21lbXNsb3Qoc2xvdHMsIGlkKTsKLQkJc2xv dC0+ZmxhZ3MgfD0gS1ZNX01FTVNMT1RfSU5WQUxJRDsKLQotCQkvKgotCQkgKiBXZSBjYW4gcmUt dXNlIHRoZSBvbGQgbWVtc2xvdHMsIHRoZSBvbmx5IGRpZmZlcmVuY2UgZnJvbSB0aGUKLQkJICog bmV3bHkgaW5zdGFsbGVkIG1lbXNsb3RzIGlzIHRoZSBpbnZhbGlkIGZsYWcsIHdoaWNoIHdpbGwg Z2V0Ci0JCSAqIGRyb3BwZWQgYnkgdXBkYXRlX21lbXNsb3RzIGFueXdheS4gIFdlJ2xsIGFsc28g cmV2ZXJ0IHRvIHRoZQotCQkgKiBvbGQgbWVtc2xvdHMgaWYgcHJlcGFyaW5nIHRoZSBuZXcgbWVt b3J5IHJlZ2lvbiBmYWlscy4KLQkJICovCi0JCXNsb3RzID0gaW5zdGFsbF9uZXdfbWVtc2xvdHMo a3ZtLCBhc19pZCwgc2xvdHMpOwotCi0JCS8qIEZyb20gdGhpcyBwb2ludCBubyBuZXcgc2hhZG93 IHBhZ2VzIHBvaW50aW5nIHRvIGEgZGVsZXRlZCwKLQkJICogb3IgbW92ZWQsIG1lbXNsb3Qgd2ls bCBiZSBjcmVhdGVkLgotCQkgKgotCQkgKiB2YWxpZGF0aW9uIG9mIHNwLT5nZm4gaGFwcGVucyBp bjoKLQkJICoJLSBnZm5fdG9faHZhIChrdm1fcmVhZF9ndWVzdCwgZ2ZuX3RvX3BmbikKLQkJICoJ LSBrdm1faXNfdmlzaWJsZV9nZm4gKG1tdV9jaGVja19yb290cykKLQkJICovCi0JCWt2bV9hcmNo X2ZsdXNoX3NoYWRvd19tZW1zbG90KGt2bSwgc2xvdCk7Ci0JfQotCi0JciA9IGt2bV9hcmNoX3By ZXBhcmVfbWVtb3J5X3JlZ2lvbihrdm0sICZuZXcsIG1lbSwgY2hhbmdlKTsKLQlpZiAocikKLQkJ Z290byBvdXRfc2xvdHM7Ci0KIAkvKiBhY3R1YWwgbWVtb3J5IGlzIGZyZWVkIHZpYSBvbGQgaW4g a3ZtX2ZyZWVfbWVtc2xvdCBiZWxvdyAqLwogCWlmIChjaGFuZ2UgPSBLVk1fTVJfREVMRVRFKSB7 CiAJCW5ldy5kaXJ0eV9iaXRtYXAgPSBOVUxMOwogCQltZW1zZXQoJm5ldy5hcmNoLCAwLCBzaXpl b2YobmV3LmFyY2gpKTsKIAl9CiAKLQl1cGRhdGVfbWVtc2xvdHMoc2xvdHMsICZuZXcsIGNoYW5n ZSk7Ci0Jc2xvdHMgPSBpbnN0YWxsX25ld19tZW1zbG90cyhrdm0sIGFzX2lkLCBzbG90cyk7Ci0K LQlrdm1fYXJjaF9jb21taXRfbWVtb3J5X3JlZ2lvbihrdm0sIG1lbSwgJm9sZCwgJm5ldywgY2hh bmdlKTsKKwlyID0ga3ZtX3NldF9tZW1zbG90KGt2bSwgbWVtLCAmb2xkLCAmbmV3LCBhc19pZCwg Y2hhbmdlKTsKKwlpZiAocikKKwkJZ290byBvdXRfYml0bWFwOwogCiAJa3ZtX2ZyZWVfbWVtc2xv dChrdm0sICZvbGQsICZuZXcpOwotCWt2ZnJlZShzbG90cyk7CiAJcmV0dXJuIDA7CiAKLW91dF9z bG90czoKLQlpZiAoY2hhbmdlID0gS1ZNX01SX0RFTEVURSB8fCBjaGFuZ2UgPSBLVk1fTVJfTU9W RSkKLQkJc2xvdHMgPSBpbnN0YWxsX25ld19tZW1zbG90cyhrdm0sIGFzX2lkLCBzbG90cyk7Ci0J a3ZmcmVlKHNsb3RzKTsKIG91dF9iaXRtYXA6CiAJaWYgKG5ldy5kaXJ0eV9iaXRtYXAgJiYgIW9s ZC5kaXJ0eV9iaXRtYXApCiAJCWt2bV9kZXN0cm95X2RpcnR5X2JpdG1hcCgmbmV3KTsKLS0gCjIu MjQuMQo=