From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 REPOST 09/12] x86/hvm/ioreq: simplify code and use consistent naming Date: Tue, 22 Aug 2017 15:51:03 +0100 Message-ID: <20170822145107.6877-10-paul.durrant@citrix.com> References: <20170822145107.6877-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dkAWS-0002DE-Pb for xen-devel@lists.xenproject.org; Tue, 22 Aug 2017 14:51:16 +0000 In-Reply-To: <20170822145107.6877-1-paul.durrant@citrix.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 Cc: Andrew Cooper , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZS13b3JrcyBtdWNoIG9mIHRoZSBJT1JFUSBzZXJ2ZXIgaW5pdGlhbGl6YXRp b24gYW5kIHRlYXJkb3duCmNvZGU6CgotIFRoZSBodm1fbWFwL3VubWFwX2lvcmVxX2dmbigpIGZ1 bmN0aW9ucyBhcmUgZXhwYW5kZWQgdG8gY2FsbCB0aHJvdWdoCiAgdG8gaHZtX2FsbG9jL2ZyZWVf aW9yZXFfZ2ZuKCkgcmF0aGVyIHRoYW4gZXhwZWN0aW5nIHRoZW0gdG8gYmUgY2FsbGVkCiAgc2Vw YXJhdGVseSBieSBvdXRlciBmdW5jdGlvbnMuCi0gU2V2ZXJhbCBmdW5jdGlvbnMgbm93IHRlc3Qg dGhlIHZhbGlkaXR5IG9mIHRoZSBodm1faW9yZXFfcGFnZSBnZm4gdmFsdWUKICB0byBkZXRlcm1p bmUgd2hldGhlciB0aGV5IG5lZWQgdG8gYWN0LiBUaGlzIG1lYW5zIGNhbiBiZSBzYWZlbHkgY2Fs bGVkCiAgZm9yIHRoZSBidWZpb3JlcSBwYWdlIGV2ZW4gd2hlbiBpdCBpcyBub3QgdXNlZC4KLSBo dm1fYWRkL3JlbW92ZV9pb3JlcV9nZm4oKSBzaW1wbHkgcmV0dXJuIGluIHRoZSBjYXNlIG9mIHRo ZSBkZWZhdWx0CiAgSU9SRVEgc2VydmVyIHNvIGNhbGxlcnMgbm8gbG9uZ2VyIG5lZWQgdG8gdGVz dCBiZWZvcmUgY2FsbGluZy4KLSBodm1faW9yZXFfc2VydmVyX3NldHVwX3BhZ2VzKCkgaXMgcmVu YW1lZCB0byBodm1faW9yZXFfc2VydmVyX21hcF9wYWdlcygpCiAgdG8gbWlycm9yIHRoZSBleGlz dGluZyBodm1faW9yZXFfc2VydmVyX3VubWFwX3BhZ2VzKCkuCgpBbGwgb2YgdGhpcyBzaWduaWZp Y2FudGx5IHNob3J0ZW5zIHRoZSBjb2RlLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxw YXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0K IHhlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyB8IDE4MSArKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyks IDExMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKaW5kZXggNTczNzA4MjIzOC4uZWRmYjM5NGM1OSAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vaW9yZXEuYwpAQCAtMTgxLDYzICsxODEsNzYgQEAgYm9vbCBoYW5kbGVfaHZtX2lvX2NvbXBs ZXRpb24oc3RydWN0IHZjcHUgKnYpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBpbnQg aHZtX2FsbG9jX2lvcmVxX2dmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nICpnZm4p CitzdGF0aWMgdW5zaWduZWQgbG9uZyBodm1fYWxsb2NfaW9yZXFfZ2ZuKHN0cnVjdCBodm1faW9y ZXFfc2VydmVyICpzKQogeworICAgIHN0cnVjdCBkb21haW4gKmQgPSBzLT5kb21haW47CiAgICAg dW5zaWduZWQgaW50IGk7Ci0gICAgaW50IHJjOwogCi0gICAgcmMgPSAtRU5PTUVNOworICAgIEFT U0VSVCghcy0+aXNfZGVmYXVsdCk7CisKICAgICBmb3IgKCBpID0gMDsgaSA8IHNpemVvZihkLT5h cmNoLmh2bV9kb21haW4uaW9yZXFfZ2ZuLm1hc2spICogODsgaSsrICkKICAgICB7CiAgICAgICAg IGlmICggdGVzdF9hbmRfY2xlYXJfYml0KGksICZkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfZ2Zu Lm1hc2spICkKICAgICAgICAgewotICAgICAgICAgICAgKmdmbiA9IGQtPmFyY2guaHZtX2RvbWFp bi5pb3JlcV9nZm4uYmFzZSArIGk7Ci0gICAgICAgICAgICByYyA9IDA7Ci0gICAgICAgICAgICBi cmVhazsKKyAgICAgICAgICAgIHJldHVybiBkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfZ2ZuLmJh c2UgKyBpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIHJjOworICAgIHJldHVybiBn Zm5feChJTlZBTElEX0dGTik7CiB9CiAKLXN0YXRpYyB2b2lkIGh2bV9mcmVlX2lvcmVxX2dmbihz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbikKK3N0YXRpYyB2b2lkIGh2bV9mcmVl X2lvcmVxX2dmbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGdmbikKIHsKKyAgICBzdHJ1Y3QgZG9tYWluICpk ID0gcy0+ZG9tYWluOwogICAgIHVuc2lnbmVkIGludCBpID0gZ2ZuIC0gZC0+YXJjaC5odm1fZG9t YWluLmlvcmVxX2dmbi5iYXNlOwogCi0gICAgaWYgKCBnZm4gIT0gZ2ZuX3goSU5WQUxJRF9HRk4p ICkKLSAgICAgICAgc2V0X2JpdChpLCAmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX2dmbi5tYXNr KTsKKyAgICBBU1NFUlQoIXMtPmlzX2RlZmF1bHQpOworCisgICAgc2V0X2JpdChpLCAmZC0+YXJj aC5odm1fZG9tYWluLmlvcmVxX2dmbi5tYXNrKTsKIH0KIAotc3RhdGljIHZvaWQgaHZtX3VubWFw X2lvcmVxX3BhZ2Uoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQorc3RhdGlj IHZvaWQgaHZtX3VubWFwX2lvcmVxX2dmbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9v bCBidWYpCiB7CiAgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3JwID0gYnVmID8gJnMtPmJ1 ZmlvcmVxIDogJnMtPmlvcmVxOwogCisgICAgaWYgKCBpb3JwLT5nZm4gPT0gZ2ZuX3goSU5WQUxJ RF9HRk4pICkKKyAgICAgICAgcmV0dXJuOworCiAgICAgZGVzdHJveV9yaW5nX2Zvcl9oZWxwZXIo JmlvcnAtPnZhLCBpb3JwLT5wYWdlKTsKKyAgICBpb3JwLT5wYWdlID0gTlVMTDsKKworICAgIGlm ICggIXMtPmlzX2RlZmF1bHQgKQorICAgICAgICBodm1fZnJlZV9pb3JlcV9nZm4ocywgaW9ycC0+ Z2ZuKTsKKworICAgIGlvcnAtPmdmbiA9IGdmbl94KElOVkFMSURfR0ZOKTsKIH0KIAotc3RhdGlj IGludCBodm1fbWFwX2lvcmVxX3BhZ2UoCi0gICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMs IGJvb2wgYnVmLCB1bnNpZ25lZCBsb25nIGdmbikKK3N0YXRpYyBpbnQgaHZtX21hcF9pb3JlcV9n Zm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQogewogICAgIHN0cnVjdCBk b21haW4gKmQgPSBzLT5kb21haW47CiAgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3JwID0g YnVmID8gJnMtPmJ1ZmlvcmVxIDogJnMtPmlvcmVxOwotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBh Z2U7Ci0gICAgdm9pZCAqdmE7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKCAocmMgPSBwcmVwYXJl X3JpbmdfZm9yX2hlbHBlcihkLCBnZm4sICZwYWdlLCAmdmEpKSApCi0gICAgICAgIHJldHVybiBy YzsKLQotICAgIGlmICggKGlvcnAtPnZhICE9IE5VTEwpIHx8IGQtPmlzX2R5aW5nICkKLSAgICB7 Ci0gICAgICAgIGRlc3Ryb3lfcmluZ19mb3JfaGVscGVyKCZ2YSwgcGFnZSk7CisgICAgaWYgKCBk LT5pc19keWluZyApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwotICAgIH0KIAotICAgIGlvcnAt PnZhID0gdmE7Ci0gICAgaW9ycC0+cGFnZSA9IHBhZ2U7Ci0gICAgaW9ycC0+Z2ZuID0gZ2ZuOwor ICAgIGlmICggcy0+aXNfZGVmYXVsdCApCisgICAgICAgIGlvcnAtPmdmbiA9IGJ1ZiA/CisgICAg ICAgICAgICAgICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX0JVRklP UkVRX1BGTl0gOgorICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1z W0hWTV9QQVJBTV9JT1JFUV9QRk5dOworICAgIGVsc2UKKyAgICAgICAgaW9ycC0+Z2ZuID0gaHZt X2FsbG9jX2lvcmVxX2dmbihzKTsKKworICAgIGlmICggaW9ycC0+Z2ZuID09IGdmbl94KElOVkFM SURfR0ZOKSApCisgICAgICAgIHJldHVybiAtRU5PTUVNOwogCi0gICAgcmV0dXJuIDA7CisgICAg cmMgPSBwcmVwYXJlX3JpbmdfZm9yX2hlbHBlcihkLCBpb3JwLT5nZm4sICZpb3JwLT5wYWdlLCAm aW9ycC0+dmEpOworCisgICAgaWYgKCByYyApCisgICAgICAgIGh2bV91bm1hcF9pb3JlcV9nZm4o cywgYnVmKTsKKworICAgIHJldHVybiByYzsKIH0KIAogYm9vbCBpc19pb3JlcV9zZXJ2ZXJfcGFn ZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlKQpAQCAtMjUx LDggKzI2NCw3IEBAIGJvb2wgaXNfaW9yZXFfc2VydmVyX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwg Y29uc3Qgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg JmQtPmFyY2guaHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubGlzdCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlzdF9lbnRyeSApCiAgICAgewotICAgICAgICBpZiAoIChzLT5pb3JlcS52YSAm JiBzLT5pb3JlcS5wYWdlID09IHBhZ2UpIHx8Ci0gICAgICAgICAgICAgKHMtPmJ1ZmlvcmVxLnZh ICYmIHMtPmJ1ZmlvcmVxLnBhZ2UgPT0gcGFnZSkgKQorICAgICAgICBpZiAoIChzLT5pb3JlcS5w YWdlID09IHBhZ2UpIHx8IChzLT5idWZpb3JlcS5wYWdlID09IHBhZ2UpICkKICAgICAgICAgewog ICAgICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNjQsMjAg KzI3NiwzMCBAQCBib29sIGlzX2lvcmVxX3NlcnZlcl9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGNv bnN0IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpCiAgICAgcmV0dXJuIGZvdW5kOwogfQogCi1zdGF0 aWMgdm9pZCBodm1fcmVtb3ZlX2lvcmVxX2dmbigKLSAgICBzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1 Y3QgaHZtX2lvcmVxX3BhZ2UgKmlvcnApCitzdGF0aWMgdm9pZCBodm1fcmVtb3ZlX2lvcmVxX2dm bihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCisKIHsKKyAgICBzdHJ1Y3Qg ZG9tYWluICpkID0gcy0+ZG9tYWluOworICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCA9 IGJ1ZiA/ICZzLT5idWZpb3JlcSA6ICZzLT5pb3JlcTsKKworICAgIGlmICggcy0+aXNfZGVmYXVs dCB8fCBpb3JwLT5nZm4gPT0gZ2ZuX3goSU5WQUxJRF9HRk4pICkKKyAgICAgICAgcmV0dXJuOwor CiAgICAgaWYgKCBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4oaW9ycC0+Z2ZuKSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21mbihwYWdlX3RvX21mbihpb3Jw LT5wYWdlKSksIDApICkKICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAgIGNsZWFyX3BhZ2Uo aW9ycC0+dmEpOwogfQogCi1zdGF0aWMgaW50IGh2bV9hZGRfaW9yZXFfZ2ZuKAotICAgIHN0cnVj dCBkb21haW4gKmQsIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCkKK3N0YXRpYyBpbnQgaHZt X2FkZF9pb3JlcV9nZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQogewor ICAgIHN0cnVjdCBkb21haW4gKmQgPSBzLT5kb21haW47CisgICAgc3RydWN0IGh2bV9pb3JlcV9w YWdlICppb3JwID0gYnVmID8gJnMtPmJ1ZmlvcmVxIDogJnMtPmlvcmVxOwogICAgIGludCByYzsK IAorICAgIGlmICggcy0+aXNfZGVmYXVsdCB8fCBpb3JwLT5nZm4gPT0gZ2ZuX3goSU5WQUxJRF9H Rk4pICkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBjbGVhcl9wYWdlKGlvcnAtPnZhKTsKIAog ICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9hZGRfcGFnZShkLCBfZ2ZuKGlvcnAtPmdmbiksCkBAIC00 MTIsNzggKzQzNCwyNSBAQCBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVyX3JlbW92ZV9hbGxf dmNwdXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCiB9CiAKIHN0YXRpYyBpbnQgaHZtX2lv cmVxX3NlcnZlcl9tYXBfcGFnZXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaW9yZXFfZ2ZuLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJ1Zmlv cmVxX2dmbikKLXsKLSAgICBpbnQgcmM7Ci0KLSAgICByYyA9IGh2bV9tYXBfaW9yZXFfcGFnZShz LCBmYWxzZSwgaW9yZXFfZ2ZuKTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgcmV0dXJuIHJjOwot Ci0gICAgaWYgKCBidWZpb3JlcV9nZm4gIT0gZ2ZuX3goSU5WQUxJRF9HRk4pICkKLSAgICAgICAg cmMgPSBodm1fbWFwX2lvcmVxX3BhZ2UocywgdHJ1ZSwgYnVmaW9yZXFfZ2ZuKTsKLQotICAgIGlm ICggcmMgKQotICAgICAgICBodm1fdW5tYXBfaW9yZXFfcGFnZShzLCBmYWxzZSk7Ci0KLSAgICBy ZXR1cm4gcmM7Ci19Ci0KLXN0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZlcl9zZXR1cF9wYWdlcyhz dHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIGhhbmRsZV9idWZpb3JlcSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYm9vbCBoYW5kbGVfYnVmaW9yZXEpCiB7Ci0gICAgc3RydWN0IGRvbWFp biAqZCA9IHMtPmRvbWFpbjsKLSAgICB1bnNpZ25lZCBsb25nIGlvcmVxX2dmbiA9IGdmbl94KElO VkFMSURfR0ZOKTsKLSAgICB1bnNpZ25lZCBsb25nIGJ1ZmlvcmVxX2dmbiA9IGdmbl94KElOVkFM SURfR0ZOKTsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIHMtPmlzX2RlZmF1bHQgKQotICAgIHsK LSAgICAgICAgLyoKLSAgICAgICAgICogVGhlIGRlZmF1bHQgaW9yZXEgc2VydmVyIG11c3QgaGFu ZGxlIGJ1ZmZlcmVkIGlvcmVxcywgZm9yCi0gICAgICAgICAqIGJhY2t3YXJkcyBjb21wYXRpYmls aXR5LgotICAgICAgICAgKi8KLSAgICAgICAgQVNTRVJUKGhhbmRsZV9idWZpb3JlcSk7Ci0gICAg ICAgIHJldHVybiBodm1faW9yZXFfc2VydmVyX21hcF9wYWdlcyhzLAotICAgICAgICAgICAgICAg ICAgIGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX0lPUkVRX1BGTl0sCi0gICAg ICAgICAgICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fQlVGSU9S RVFfUEZOXSk7Ci0gICAgfQorICAgIGludCByYyA9IC1FTk9NRU07CiAKLSAgICByYyA9IGh2bV9h bGxvY19pb3JlcV9nZm4oZCwgJmlvcmVxX2dmbik7CisgICAgcmMgPSBodm1fbWFwX2lvcmVxX2dm bihzLCBmYWxzZSk7CiAKICAgICBpZiAoICFyYyAmJiBoYW5kbGVfYnVmaW9yZXEgKQotICAgICAg ICByYyA9IGh2bV9hbGxvY19pb3JlcV9nZm4oZCwgJmJ1ZmlvcmVxX2dmbik7Ci0KLSAgICBpZiAo ICFyYyApCi0gICAgICAgIHJjID0gaHZtX2lvcmVxX3NlcnZlcl9tYXBfcGFnZXMocywgaW9yZXFf Z2ZuLCBidWZpb3JlcV9nZm4pOworICAgICAgICByYyA9IGh2bV9tYXBfaW9yZXFfZ2ZuKHMsIHRy dWUpOwogCiAgICAgaWYgKCByYyApCi0gICAgewotICAgICAgICBodm1fZnJlZV9pb3JlcV9nZm4o ZCwgaW9yZXFfZ2ZuKTsKLSAgICAgICAgaHZtX2ZyZWVfaW9yZXFfZ2ZuKGQsIGJ1ZmlvcmVxX2dm bik7Ci0gICAgfQorICAgICAgICBodm1fdW5tYXBfaW9yZXFfZ2ZuKHMsIGZhbHNlKTsKIAogICAg IHJldHVybiByYzsKIH0KIAogc3RhdGljIHZvaWQgaHZtX2lvcmVxX3NlcnZlcl91bm1hcF9wYWdl cyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKIHsKLSAgICBzdHJ1Y3QgZG9tYWluICpkID0g cy0+ZG9tYWluOwotICAgIGJvb2wgaGFuZGxlX2J1ZmlvcmVxID0gISFzLT5idWZpb3JlcS52YTsK LQotICAgIGlmICggaGFuZGxlX2J1ZmlvcmVxICkKLSAgICAgICAgaHZtX3VubWFwX2lvcmVxX3Bh Z2UocywgdHJ1ZSk7Ci0KLSAgICBodm1fdW5tYXBfaW9yZXFfcGFnZShzLCBmYWxzZSk7Ci0KLSAg ICBpZiAoICFzLT5pc19kZWZhdWx0ICkKLSAgICB7Ci0gICAgICAgIGlmICggaGFuZGxlX2J1Zmlv cmVxICkKLSAgICAgICAgICAgIGh2bV9mcmVlX2lvcmVxX2dmbihkLCBzLT5idWZpb3JlcS5nZm4p OwotCi0gICAgICAgIGh2bV9mcmVlX2lvcmVxX2dmbihkLCBzLT5pb3JlcS5nZm4pOwotICAgIH0K KyAgICBodm1fdW5tYXBfaW9yZXFfZ2ZuKHMsIHRydWUpOworICAgIGh2bV91bm1hcF9pb3JlcV9n Zm4ocywgZmFsc2UpOwogfQogCiBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVyX2ZyZWVfcmFu Z2VzZXRzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQpAQCAtNTQwLDIyICs1MDksMTUgQEAg c3RhdGljIGludCBodm1faW9yZXFfc2VydmVyX2FsbG9jX3Jhbmdlc2V0cyhzdHJ1Y3QgaHZtX2lv cmVxX3NlcnZlciAqcykKIAogc3RhdGljIHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9lbmFibGUoc3Ry dWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCiB7Ci0gICAgc3RydWN0IGRvbWFpbiAqZCA9IHMtPmRv bWFpbjsKICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3ZjcHUgKnN2OwotICAgIGJvb2wgaGFuZGxlX2J1 ZmlvcmVxID0gISFzLT5idWZpb3JlcS52YTsKIAogICAgIHNwaW5fbG9jaygmcy0+bG9jayk7CiAK ICAgICBpZiAoIHMtPmVuYWJsZWQgKQogICAgICAgICBnb3RvIGRvbmU7CiAKLSAgICBpZiAoICFz LT5pc19kZWZhdWx0ICkKLSAgICB7Ci0gICAgICAgIGh2bV9yZW1vdmVfaW9yZXFfZ2ZuKGQsICZz LT5pb3JlcSk7Ci0KLSAgICAgICAgaWYgKCBoYW5kbGVfYnVmaW9yZXEgKQotICAgICAgICAgICAg aHZtX3JlbW92ZV9pb3JlcV9nZm4oZCwgJnMtPmJ1ZmlvcmVxKTsKLSAgICB9CisgICAgaHZtX3Jl bW92ZV9pb3JlcV9nZm4ocywgZmFsc2UpOworICAgIGh2bV9yZW1vdmVfaW9yZXFfZ2ZuKHMsIHRy dWUpOwogCiAgICAgcy0+ZW5hYmxlZCA9IHRydWU7CiAKQEAgLTU3MCwyMSArNTMyLDEzIEBAIHN0 YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfZW5hYmxlKHN0cnVjdCBodm1faW9yZXFfc2VydmVy ICpzKQogCiBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVyX2Rpc2FibGUoc3RydWN0IGh2bV9p b3JlcV9zZXJ2ZXIgKnMpCiB7Ci0gICAgc3RydWN0IGRvbWFpbiAqZCA9IHMtPmRvbWFpbjsKLSAg ICBib29sIGhhbmRsZV9idWZpb3JlcSA9ICEhcy0+YnVmaW9yZXEudmE7Ci0KICAgICBzcGluX2xv Y2soJnMtPmxvY2spOwogCiAgICAgaWYgKCAhcy0+ZW5hYmxlZCApCiAgICAgICAgIGdvdG8gZG9u ZTsKIAotICAgIGlmICggIXMtPmlzX2RlZmF1bHQgKQotICAgIHsKLSAgICAgICAgaWYgKCBoYW5k bGVfYnVmaW9yZXEgKQotICAgICAgICAgICAgaHZtX2FkZF9pb3JlcV9nZm4oZCwgJnMtPmJ1Zmlv cmVxKTsKLQotICAgICAgICBodm1fYWRkX2lvcmVxX2dmbihkLCAmcy0+aW9yZXEpOwotICAgIH0K KyAgICBodm1fYWRkX2lvcmVxX2dmbihzLCB0cnVlKTsKKyAgICBodm1fYWRkX2lvcmVxX2dmbihz LCBmYWxzZSk7CiAKICAgICBzLT5lbmFibGVkID0gZmFsc2U7CiAKQEAgLTYwNyw2ICs1NjEsOSBA QCBzdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfaW5pdChzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZl ciAqcywKICAgICBJTklUX0xJU1RfSEVBRCgmcy0+aW9yZXFfdmNwdV9saXN0KTsKICAgICBzcGlu X2xvY2tfaW5pdCgmcy0+YnVmaW9yZXFfbG9jayk7CiAKKyAgICBzLT5pb3JlcS5nZm4gPSBnZm5f eChJTlZBTElEX0dGTik7CisgICAgcy0+YnVmaW9yZXEuZ2ZuID0gZ2ZuX3goSU5WQUxJRF9HRk4p OworCiAgICAgcmMgPSBodm1faW9yZXFfc2VydmVyX2FsbG9jX3Jhbmdlc2V0cyhzKTsKICAgICBp ZiAoIHJjICkKICAgICAgICAgcmV0dXJuIHJjOwpAQCAtNjE0LDcgKzU3MSw3IEBAIHN0YXRpYyBp bnQgaHZtX2lvcmVxX3NlcnZlcl9pbml0KHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLAogICAg IGlmICggYnVmaW9yZXFfaGFuZGxpbmcgPT0gSFZNX0lPUkVRU1JWX0JVRklPUkVRX0FUT01JQyAp CiAgICAgICAgIHMtPmJ1ZmlvcmVxX2F0b21pYyA9IHRydWU7CiAKLSAgICByYyA9IGh2bV9pb3Jl cV9zZXJ2ZXJfc2V0dXBfcGFnZXMoCisgICAgcmMgPSBodm1faW9yZXFfc2VydmVyX21hcF9wYWdl cygKICAgICAgICAgICAgICBzLCBidWZpb3JlcV9oYW5kbGluZyAhPSBIVk1fSU9SRVFTUlZfQlVG SU9SRVFfT0ZGKTsKICAgICBpZiAoIHJjICkKICAgICAgICAgZ290byBmYWlsX21hcDsKLS0gCjIu MTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=