From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v15 02/11] x86/hvm/ioreq: simplify code and use consistent naming Date: Thu, 14 Dec 2017 17:41:35 +0000 Message-ID: <20171214174144.27852-3-paul.durrant@citrix.com> References: <20171214174144.27852-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ePXW1-00072R-IQ for xen-devel@lists.xenproject.org; Thu, 14 Dec 2017 17:41:49 +0000 In-Reply-To: <20171214174144.27852-1-paul.durrant@citrix.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: Andrew Cooper , Paul Durrant List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZS13b3JrcyBtdWNoIG9mIHRoZSBpb3JlcSBzZXJ2ZXIgaW5pdGlhbGl6YXRp b24gYW5kIHRlYXJkb3duCmNvZGU6CgotIFRoZSBodm1fbWFwL3VubWFwX2lvcmVxX2dmbigpIGZ1 bmN0aW9ucyBhcmUgZXhwYW5kZWQgdG8gY2FsbCB0aHJvdWdoCiAgdG8gaHZtX2FsbG9jL2ZyZWVf aW9yZXFfZ2ZuKCkgcmF0aGVyIHRoYW4gZXhwZWN0aW5nIHRoZW0gdG8gYmUgY2FsbGVkCiAgc2Vw YXJhdGVseSBieSBvdXRlciBmdW5jdGlvbnMuCi0gU2V2ZXJhbCBmdW5jdGlvbnMgbm93IHRlc3Qg dGhlIHZhbGlkaXR5IG9mIHRoZSBodm1faW9yZXFfcGFnZSBnZm4gdmFsdWUKICB0byBkZXRlcm1p bmUgd2hldGhlciB0aGV5IG5lZWQgdG8gYWN0LiBUaGlzIG1lYW5zIGNhbiBiZSBzYWZlbHkgY2Fs bGVkCiAgZm9yIHRoZSBidWZpb3JlcSBwYWdlIGV2ZW4gd2hlbiBpdCBpcyBub3QgdXNlZC4KLSBo dm1fYWRkL3JlbW92ZV9pb3JlcV9nZm4oKSBzaW1wbHkgcmV0dXJuIGluIHRoZSBjYXNlIG9mIHRo ZSBkZWZhdWx0CiAgSU9SRVEgc2VydmVyIHNvIGNhbGxlcnMgbm8gbG9uZ2VyIG5lZWQgdG8gdGVz dCBiZWZvcmUgY2FsbGluZy4KLSBodm1faW9yZXFfc2VydmVyX3NldHVwX3BhZ2VzKCkgaXMgcmVu YW1lZCB0byBodm1faW9yZXFfc2VydmVyX21hcF9wYWdlcygpCiAgdG8gbWlycm9yIHRoZSBleGlz dGluZyBodm1faW9yZXFfc2VydmVyX3VubWFwX3BhZ2VzKCkuCgpBbGwgb2YgdGhpcyBzaWduaWZp Y2FudGx5IHNob3J0ZW5zIHRoZSBjb2RlLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxw YXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJv Z2VyLnBhdUBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4 LmNvbT4KQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCkNjOiBB bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKdjM6CiAtIFJlYmFzZWQg b24gdG9wIG9mICdzLT5pc19kZWZhdWx0JyB0byAnSVNfREVGQVVMVChzKScgY2hhbmdlcy4KIC0g TWlub3IgdXBkYXRlcyBpbiByZXNwb25zZSB0byByZXZpZXcgY29tbWVudHMgZnJvbSBSb2dlci4K LS0tCiB4ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMgfCAxODIgKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2OSBpbnNlcnRpb25z KCspLCAxMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9pb3Jl cS5jIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCmluZGV4IGMxZjQ3M2Q2NDkuLjBmMTI0YjZj MWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYworKysgYi94ZW4vYXJjaC94 ODYvaHZtL2lvcmVxLmMKQEAgLTIxMCw2MyArMjEwLDc1IEBAIGJvb2wgaGFuZGxlX2h2bV9pb19j b21wbGV0aW9uKHN0cnVjdCB2Y3B1ICp2KQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMg aW50IGh2bV9hbGxvY19pb3JlcV9nZm4oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyAq Z2ZuKQorc3RhdGljIHVuc2lnbmVkIGxvbmcgaHZtX2FsbG9jX2lvcmVxX2dmbihzdHJ1Y3QgaHZt X2lvcmVxX3NlcnZlciAqcykKIHsKKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gcy0+ZG9tYWluOwog ICAgIHVuc2lnbmVkIGludCBpOwotICAgIGludCByYzsKIAotICAgIHJjID0gLUVOT01FTTsKKyAg ICBBU1NFUlQoIUlTX0RFRkFVTFQocykpOworCiAgICAgZm9yICggaSA9IDA7IGkgPCBzaXplb2Yo ZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX2dmbi5tYXNrKSAqIDg7IGkrKyApCiAgICAgewogICAg ICAgICBpZiAoIHRlc3RfYW5kX2NsZWFyX2JpdChpLCAmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVx X2dmbi5tYXNrKSApCi0gICAgICAgIHsKLSAgICAgICAgICAgICpnZm4gPSBkLT5hcmNoLmh2bV9k b21haW4uaW9yZXFfZ2ZuLmJhc2UgKyBpOwotICAgICAgICAgICAgcmMgPSAwOwotICAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBkLT5hcmNoLmh2bV9kb21h aW4uaW9yZXFfZ2ZuLmJhc2UgKyBpOwogICAgIH0KIAotICAgIHJldHVybiByYzsKKyAgICByZXR1 cm4gZ2ZuX3goSU5WQUxJRF9HRk4pOwogfQogCi1zdGF0aWMgdm9pZCBodm1fZnJlZV9pb3JlcV9n Zm4oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCitzdGF0aWMgdm9pZCBodm1f ZnJlZV9pb3JlcV9nZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBnZm4pCiB7CisgICAgc3RydWN0IGRvbWFp biAqZCA9IHMtPmRvbWFpbjsKICAgICB1bnNpZ25lZCBpbnQgaSA9IGdmbiAtIGQtPmFyY2guaHZt X2RvbWFpbi5pb3JlcV9nZm4uYmFzZTsKIAotICAgIGlmICggZ2ZuICE9IGdmbl94KElOVkFMSURf R0ZOKSApCi0gICAgICAgIHNldF9iaXQoaSwgJmQtPmFyY2guaHZtX2RvbWFpbi5pb3JlcV9nZm4u bWFzayk7CisgICAgQVNTRVJUKCFJU19ERUZBVUxUKHMpKTsKKyAgICBBU1NFUlQoZ2ZuICE9IGdm bl94KElOVkFMSURfR0ZOKSk7CisKKyAgICBzZXRfYml0KGksICZkLT5hcmNoLmh2bV9kb21haW4u aW9yZXFfZ2ZuLm1hc2spOwogfQogCi1zdGF0aWMgdm9pZCBodm1fdW5tYXBfaW9yZXFfcGFnZShz dHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCitzdGF0aWMgdm9pZCBodm1fdW5t YXBfaW9yZXFfZ2ZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCBib29sIGJ1ZikKIHsKICAg ICBzdHJ1Y3QgaHZtX2lvcmVxX3BhZ2UgKmlvcnAgPSBidWYgPyAmcy0+YnVmaW9yZXEgOiAmcy0+ aW9yZXE7CiAKKyAgICBpZiAoIGlvcnAtPmdmbiA9PSBnZm5feChJTlZBTElEX0dGTikgKQorICAg ICAgICByZXR1cm47CisKICAgICBkZXN0cm95X3JpbmdfZm9yX2hlbHBlcigmaW9ycC0+dmEsIGlv cnAtPnBhZ2UpOworICAgIGlvcnAtPnBhZ2UgPSBOVUxMOworCisgICAgaWYgKCAhSVNfREVGQVVM VChzKSApCisgICAgICAgIGh2bV9mcmVlX2lvcmVxX2dmbihzLCBpb3JwLT5nZm4pOworCisgICAg aW9ycC0+Z2ZuID0gZ2ZuX3goSU5WQUxJRF9HRk4pOwogfQogCi1zdGF0aWMgaW50IGh2bV9tYXBf aW9yZXFfcGFnZSgKLSAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYsIHVu c2lnbmVkIGxvbmcgZ2ZuKQorc3RhdGljIGludCBodm1fbWFwX2lvcmVxX2dmbihzdHJ1Y3QgaHZt X2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHMt PmRvbWFpbjsKICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3BhZ2UgKmlvcnAgPSBidWYgPyAmcy0+YnVm aW9yZXEgOiAmcy0+aW9yZXE7Ci0gICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKLSAgICB2b2lk ICp2YTsKICAgICBpbnQgcmM7CiAKLSAgICBpZiAoIChyYyA9IHByZXBhcmVfcmluZ19mb3JfaGVs cGVyKGQsIGdmbiwgJnBhZ2UsICZ2YSkpICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgaWYg KCAoaW9ycC0+dmEgIT0gTlVMTCkgfHwgZC0+aXNfZHlpbmcgKQotICAgIHsKLSAgICAgICAgZGVz dHJveV9yaW5nX2Zvcl9oZWxwZXIoJnZhLCBwYWdlKTsKKyAgICBpZiAoIGQtPmlzX2R5aW5nICkK ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0gICAgfQogCi0gICAgaW9ycC0+dmEgPSB2YTsKLSAg ICBpb3JwLT5wYWdlID0gcGFnZTsKLSAgICBpb3JwLT5nZm4gPSBnZm47CisgICAgaWYgKCBJU19E RUZBVUxUKHMpICkKKyAgICAgICAgaW9ycC0+Z2ZuID0gYnVmID8KKyAgICAgICAgICAgICAgICAg ICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fQlVGSU9SRVFfUEZOXSA6Cisg ICAgICAgICAgICAgICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX0lP UkVRX1BGTl07CisgICAgZWxzZQorICAgICAgICBpb3JwLT5nZm4gPSBodm1fYWxsb2NfaW9yZXFf Z2ZuKHMpOwogCi0gICAgcmV0dXJuIDA7CisgICAgaWYgKCBpb3JwLT5nZm4gPT0gZ2ZuX3goSU5W QUxJRF9HRk4pICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICByYyA9IHByZXBhcmVf cmluZ19mb3JfaGVscGVyKGQsIGlvcnAtPmdmbiwgJmlvcnAtPnBhZ2UsICZpb3JwLT52YSk7CisK KyAgICBpZiAoIHJjICkKKyAgICAgICAgaHZtX3VubWFwX2lvcmVxX2dmbihzLCBidWYpOworCisg ICAgcmV0dXJuIHJjOwogfQogCiBib29sIGlzX2lvcmVxX3NlcnZlcl9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIGNvbnN0IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpCkBAIC0yNzksOCArMjkxLDcgQEAg Ym9vbCBpc19pb3JlcV9zZXJ2ZXJfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3Qg cGFnZV9pbmZvICpwYWdlKQogCiAgICAgRk9SX0VBQ0hfSU9SRVFfU0VSVkVSKGQsIGlkLCBzKQog ICAgIHsKLSAgICAgICAgaWYgKCAocy0+aW9yZXEudmEgJiYgcy0+aW9yZXEucGFnZSA9PSBwYWdl KSB8fAotICAgICAgICAgICAgIChzLT5idWZpb3JlcS52YSAmJiBzLT5idWZpb3JlcS5wYWdlID09 IHBhZ2UpICkKKyAgICAgICAgaWYgKCAocy0+aW9yZXEucGFnZSA9PSBwYWdlKSB8fCAocy0+YnVm aW9yZXEucGFnZSA9PSBwYWdlKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGZvdW5kID0gdHJ1 ZTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjkyLDIwICszMDMsMzAgQEAgYm9vbCBpc19pb3Jl cV9zZXJ2ZXJfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgcGFnZV9pbmZvICpw YWdlKQogICAgIHJldHVybiBmb3VuZDsKIH0KIAotc3RhdGljIHZvaWQgaHZtX3JlbW92ZV9pb3Jl cV9nZm4oCi0gICAgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3Jw KQorc3RhdGljIHZvaWQgaHZtX3JlbW92ZV9pb3JlcV9nZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2 ZXIgKnMsIGJvb2wgYnVmKQorCiB7CisgICAgc3RydWN0IGRvbWFpbiAqZCA9IHMtPmRvbWFpbjsK KyAgICBzdHJ1Y3QgaHZtX2lvcmVxX3BhZ2UgKmlvcnAgPSBidWYgPyAmcy0+YnVmaW9yZXEgOiAm cy0+aW9yZXE7CisKKyAgICBpZiAoIElTX0RFRkFVTFQocykgfHwgaW9ycC0+Z2ZuID09IGdmbl94 KElOVkFMSURfR0ZOKSApCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICggZ3Vlc3RfcGh5c21h cF9yZW1vdmVfcGFnZShkLCBfZ2ZuKGlvcnAtPmdmbiksCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF9tZm4ocGFnZV90b19tZm4oaW9ycC0+cGFnZSkpLCAwKSApCiAgICAgICAg IGRvbWFpbl9jcmFzaChkKTsKICAgICBjbGVhcl9wYWdlKGlvcnAtPnZhKTsKIH0KIAotc3RhdGlj IGludCBodm1fYWRkX2lvcmVxX2dmbigKLSAgICBzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgaHZt X2lvcmVxX3BhZ2UgKmlvcnApCitzdGF0aWMgaW50IGh2bV9hZGRfaW9yZXFfZ2ZuKHN0cnVjdCBo dm1faW9yZXFfc2VydmVyICpzLCBib29sIGJ1ZikKIHsKKyAgICBzdHJ1Y3QgZG9tYWluICpkID0g cy0+ZG9tYWluOworICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5i dWZpb3JlcSA6ICZzLT5pb3JlcTsKICAgICBpbnQgcmM7CiAKKyAgICBpZiAoIElTX0RFRkFVTFQo cykgfHwgaW9ycC0+Z2ZuID09IGdmbl94KElOVkFMSURfR0ZOKSApCisgICAgICAgIHJldHVybiAw OworCiAgICAgY2xlYXJfcGFnZShpb3JwLT52YSk7CiAKICAgICByYyA9IGd1ZXN0X3BoeXNtYXBf YWRkX3BhZ2UoZCwgX2dmbihpb3JwLT5nZm4pLApAQCAtNDQwLDc4ICs0NjEsMjUgQEAgc3RhdGlj IHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9yZW1vdmVfYWxsX3ZjcHVzKHN0cnVjdCBodm1faW9yZXFf c2VydmVyICpzKQogfQogCiBzdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfbWFwX3BhZ2VzKHN0 cnVjdCBodm1faW9yZXFfc2VydmVyICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGlvcmVxX2dmbiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBidWZpb3JlcV9nZm4pCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaGFuZGxlX2J1ZmlvcmVxKQogewogICAgIGlu dCByYzsKIAotICAgIHJjID0gaHZtX21hcF9pb3JlcV9wYWdlKHMsIGZhbHNlLCBpb3JlcV9nZm4p OwotICAgIGlmICggcmMgKQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICBpZiAoIGJ1ZmlvcmVx X2dmbiAhPSBnZm5feChJTlZBTElEX0dGTikgKQotICAgICAgICByYyA9IGh2bV9tYXBfaW9yZXFf cGFnZShzLCB0cnVlLCBidWZpb3JlcV9nZm4pOwotCi0gICAgaWYgKCByYyApCi0gICAgICAgIGh2 bV91bm1hcF9pb3JlcV9wYWdlKHMsIGZhbHNlKTsKLQotICAgIHJldHVybiByYzsKLX0KLQotc3Rh dGljIGludCBodm1faW9yZXFfc2VydmVyX3NldHVwX3BhZ2VzKHN0cnVjdCBodm1faW9yZXFfc2Vy dmVyICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaGFu ZGxlX2J1ZmlvcmVxKQotewotICAgIHN0cnVjdCBkb21haW4gKmQgPSBzLT5kb21haW47Ci0gICAg dW5zaWduZWQgbG9uZyBpb3JlcV9nZm4gPSBnZm5feChJTlZBTElEX0dGTik7Ci0gICAgdW5zaWdu ZWQgbG9uZyBidWZpb3JlcV9nZm4gPSBnZm5feChJTlZBTElEX0dGTik7Ci0gICAgaW50IHJjOwot Ci0gICAgaWYgKCBJU19ERUZBVUxUKHMpICkKLSAgICB7Ci0gICAgICAgIC8qCi0gICAgICAgICAq IFRoZSBkZWZhdWx0IGlvcmVxIHNlcnZlciBtdXN0IGhhbmRsZSBidWZmZXJlZCBpb3JlcXMsIGZv cgotICAgICAgICAgKiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KLSAgICAgICAgICovCi0gICAg ICAgIEFTU0VSVChoYW5kbGVfYnVmaW9yZXEpOwotICAgICAgICByZXR1cm4gaHZtX2lvcmVxX3Nl cnZlcl9tYXBfcGFnZXMocywKLSAgICAgICAgICAgICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4u cGFyYW1zW0hWTV9QQVJBTV9JT1JFUV9QRk5dLAotICAgICAgICAgICAgICAgICAgIGQtPmFyY2gu aHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX0JVRklPUkVRX1BGTl0pOwotICAgIH0KLQotICAg IHJjID0gaHZtX2FsbG9jX2lvcmVxX2dmbihkLCAmaW9yZXFfZ2ZuKTsKKyAgICByYyA9IGh2bV9t YXBfaW9yZXFfZ2ZuKHMsIGZhbHNlKTsKIAogICAgIGlmICggIXJjICYmIGhhbmRsZV9idWZpb3Jl cSApCi0gICAgICAgIHJjID0gaHZtX2FsbG9jX2lvcmVxX2dmbihkLCAmYnVmaW9yZXFfZ2ZuKTsK LQotICAgIGlmICggIXJjICkKLSAgICAgICAgcmMgPSBodm1faW9yZXFfc2VydmVyX21hcF9wYWdl cyhzLCBpb3JlcV9nZm4sIGJ1ZmlvcmVxX2dmbik7CisgICAgICAgIHJjID0gaHZtX21hcF9pb3Jl cV9nZm4ocywgdHJ1ZSk7CiAKICAgICBpZiAoIHJjICkKLSAgICB7Ci0gICAgICAgIGh2bV9mcmVl X2lvcmVxX2dmbihkLCBpb3JlcV9nZm4pOwotICAgICAgICBodm1fZnJlZV9pb3JlcV9nZm4oZCwg YnVmaW9yZXFfZ2ZuKTsKLSAgICB9CisgICAgICAgIGh2bV91bm1hcF9pb3JlcV9nZm4ocywgZmFs c2UpOwogCiAgICAgcmV0dXJuIHJjOwogfQogCiBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVy X3VubWFwX3BhZ2VzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQogewotICAgIHN0cnVjdCBk b21haW4gKmQgPSBzLT5kb21haW47Ci0gICAgYm9vbCBoYW5kbGVfYnVmaW9yZXEgPSAhIXMtPmJ1 ZmlvcmVxLnZhOwotCi0gICAgaWYgKCBoYW5kbGVfYnVmaW9yZXEgKQotICAgICAgICBodm1fdW5t YXBfaW9yZXFfcGFnZShzLCB0cnVlKTsKLQotICAgIGh2bV91bm1hcF9pb3JlcV9wYWdlKHMsIGZh bHNlKTsKLQotICAgIGlmICggIUlTX0RFRkFVTFQocykgKQotICAgIHsKLSAgICAgICAgaWYgKCBo YW5kbGVfYnVmaW9yZXEgKQotICAgICAgICAgICAgaHZtX2ZyZWVfaW9yZXFfZ2ZuKGQsIHMtPmJ1 ZmlvcmVxLmdmbik7Ci0KLSAgICAgICAgaHZtX2ZyZWVfaW9yZXFfZ2ZuKGQsIHMtPmlvcmVxLmdm bik7Ci0gICAgfQorICAgIGh2bV91bm1hcF9pb3JlcV9nZm4ocywgdHJ1ZSk7CisgICAgaHZtX3Vu bWFwX2lvcmVxX2dmbihzLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2 ZXJfZnJlZV9yYW5nZXNldHMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCkBAIC01NzEsMjIg KzUzOSwxNSBAQCBzdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfYWxsb2NfcmFuZ2VzZXRzKHN0 cnVjdCBodm1faW9yZXFfc2VydmVyICpzLAogCiBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVy X2VuYWJsZShzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKIHsKLSAgICBzdHJ1Y3QgZG9tYWlu ICpkID0gcy0+ZG9tYWluOwogICAgIHN0cnVjdCBodm1faW9yZXFfdmNwdSAqc3Y7Ci0gICAgYm9v bCBoYW5kbGVfYnVmaW9yZXEgPSAhIXMtPmJ1ZmlvcmVxLnZhOwogCiAgICAgc3Bpbl9sb2NrKCZz LT5sb2NrKTsKIAogICAgIGlmICggcy0+ZW5hYmxlZCApCiAgICAgICAgIGdvdG8gZG9uZTsKIAot ICAgIGlmICggIUlTX0RFRkFVTFQocykgKQotICAgIHsKLSAgICAgICAgaHZtX3JlbW92ZV9pb3Jl cV9nZm4oZCwgJnMtPmlvcmVxKTsKLQotICAgICAgICBpZiAoIGhhbmRsZV9idWZpb3JlcSApCi0g ICAgICAgICAgICBodm1fcmVtb3ZlX2lvcmVxX2dmbihkLCAmcy0+YnVmaW9yZXEpOwotICAgIH0K KyAgICBodm1fcmVtb3ZlX2lvcmVxX2dmbihzLCBmYWxzZSk7CisgICAgaHZtX3JlbW92ZV9pb3Jl cV9nZm4ocywgdHJ1ZSk7CiAKICAgICBzLT5lbmFibGVkID0gdHJ1ZTsKIApAQCAtNjAxLDIxICs1 NjIsMTMgQEAgc3RhdGljIHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9lbmFibGUoc3RydWN0IGh2bV9p b3JlcV9zZXJ2ZXIgKnMpCiAKIHN0YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfZGlzYWJsZShz dHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKIHsKLSAgICBzdHJ1Y3QgZG9tYWluICpkID0gcy0+ ZG9tYWluOwotICAgIGJvb2wgaGFuZGxlX2J1ZmlvcmVxID0gISFzLT5idWZpb3JlcS52YTsKLQog ICAgIHNwaW5fbG9jaygmcy0+bG9jayk7CiAKICAgICBpZiAoICFzLT5lbmFibGVkICkKICAgICAg ICAgZ290byBkb25lOwogCi0gICAgaWYgKCAhSVNfREVGQVVMVChzKSApCi0gICAgewotICAgICAg ICBpZiAoIGhhbmRsZV9idWZpb3JlcSApCi0gICAgICAgICAgICBodm1fYWRkX2lvcmVxX2dmbihk LCAmcy0+YnVmaW9yZXEpOwotCi0gICAgICAgIGh2bV9hZGRfaW9yZXFfZ2ZuKGQsICZzLT5pb3Jl cSk7Ci0gICAgfQorICAgIGh2bV9hZGRfaW9yZXFfZ2ZuKHMsIHRydWUpOworICAgIGh2bV9hZGRf aW9yZXFfZ2ZuKHMsIGZhbHNlKTsKIAogICAgIHMtPmVuYWJsZWQgPSBmYWxzZTsKIApAQCAtNjM3 LDYgKzU5MCw5IEBAIHN0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZlcl9pbml0KHN0cnVjdCBodm1f aW9yZXFfc2VydmVyICpzLAogICAgIElOSVRfTElTVF9IRUFEKCZzLT5pb3JlcV92Y3B1X2xpc3Qp OwogICAgIHNwaW5fbG9ja19pbml0KCZzLT5idWZpb3JlcV9sb2NrKTsKIAorICAgIHMtPmlvcmVx LmdmbiA9IGdmbl94KElOVkFMSURfR0ZOKTsKKyAgICBzLT5idWZpb3JlcS5nZm4gPSBnZm5feChJ TlZBTElEX0dGTik7CisKICAgICByYyA9IGh2bV9pb3JlcV9zZXJ2ZXJfYWxsb2NfcmFuZ2VzZXRz KHMsIGlkKTsKICAgICBpZiAoIHJjICkKICAgICAgICAgcmV0dXJuIHJjOwpAQCAtNjQ0LDcgKzYw MCw3IEBAIHN0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZlcl9pbml0KHN0cnVjdCBodm1faW9yZXFf c2VydmVyICpzLAogICAgIGlmICggYnVmaW9yZXFfaGFuZGxpbmcgPT0gSFZNX0lPUkVRU1JWX0JV RklPUkVRX0FUT01JQyApCiAgICAgICAgIHMtPmJ1ZmlvcmVxX2F0b21pYyA9IHRydWU7CiAKLSAg ICByYyA9IGh2bV9pb3JlcV9zZXJ2ZXJfc2V0dXBfcGFnZXMoCisgICAgcmMgPSBodm1faW9yZXFf c2VydmVyX21hcF9wYWdlcygKICAgICAgICAgICAgICBzLCBidWZpb3JlcV9oYW5kbGluZyAhPSBI Vk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZGKTsKICAgICBpZiAoIHJjICkKICAgICAgICAgZ290byBm YWlsX21hcDsKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnBy b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94 ZW4tZGV2ZWw=