From mboxrd@z Thu Jan 1 00:00:00 1970 From: Feng Wu Subject: [PATCH v8 4/7] VT-d: Use one function to update both remapped and posted IRTE Date: Fri, 18 Nov 2016 09:57:21 +0800 Message-ID: <1479434244-10223-5-git-send-email-feng.wu@intel.com> References: <1479434244-10223-1-git-send-email-feng.wu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1479434244-10223-1-git-send-email-feng.wu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: kevin.tian@intel.com, Feng Wu , george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org VXNlIG9uZSBmdW5jdGlvbiB0byB1cGRhdGUgYm90aCByZW1hcHBlZCBJUlRFIGFuZCBwb3N0ZWQg SVJFVC4KClNpZ25lZC1vZmYtYnk6IEZlbmcgV3UgPGZlbmcud3VAaW50ZWwuY29tPgotLS0Kdjg6 Ci0gTmV3bHkgYWRkZWQKCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW50cmVtYXAuYyB8 IDE2MiArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 NiBpbnNlcnRpb25zKCspLCA5NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQvaW50cmVtYXAuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9pbnRyZW1hcC5jCmluZGV4IGJmZDQ2OGIuLmZkMmE0OWEgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pbnRyZW1hcC5jCkBAIC00MjAsNyArNDIwLDcgQEAgdm9pZCBpb19hcGljX3dyaXRl X3JlbWFwX3J0ZSgKICAgICAgICAgX19pb2FwaWNfd3JpdGVfZW50cnkoYXBpYywgaW9hcGljX3Bp biwgMSwgb2xkX3J0ZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldF9tc2lfc291cmNlX2lkKHN0cnVj dCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgaXJlbWFwX2VudHJ5ICppcmUpCitzdGF0aWMgdm9pZCBz ZXRfbXNpX3NvdXJjZV9pZChjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IGlyZW1h cF9lbnRyeSAqaXJlKQogewogICAgIHUxNiBzZWc7CiAgICAgdTggYnVzLCBkZXZmbiwgc2VjYnVz OwpAQCAtNTQ4LDExICs1NDgsMTIgQEAgc3RhdGljIGludCByZW1hcF9lbnRyeV90b19tc2lfbXNn KAogfQogCiBzdGF0aWMgaW50IG1zaV9tc2dfdG9fcmVtYXBfZW50cnkoCi0gICAgc3RydWN0IGlv bW11ICppb21tdSwgc3RydWN0IHBjaV9kZXYgKnBkZXYsCi0gICAgc3RydWN0IG1zaV9kZXNjICpt c2lfZGVzYywgc3RydWN0IG1zaV9tc2cgKm1zZykKKyAgICBzdHJ1Y3QgaW9tbXUgKmlvbW11LCBj b25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwKKyAgICBzdHJ1Y3QgbXNpX2Rlc2MgKm1zaV9kZXNj LCBzdHJ1Y3QgbXNpX21zZyAqbXNnLAorICAgIGNvbnN0IHN0cnVjdCBwaV9kZXNjICpwaV9kZXNj LCBjb25zdCB1aW50OF90IGd2ZWMpCiB7CiAgICAgc3RydWN0IGlyZW1hcF9lbnRyeSAqaXJlbWFw X2VudHJ5ID0gTlVMTCwgKmlyZW1hcF9lbnRyaWVzOwotICAgIHN0cnVjdCBpcmVtYXBfZW50cnkg bmV3X2lyZTsKKyAgICBzdHJ1Y3QgaXJlbWFwX2VudHJ5IG5ld19pcmUsIG9sZF9pcmU7CiAgICAg c3RydWN0IG1zaV9tc2dfcmVtYXBfZW50cnkgKnJlbWFwX3J0ZTsKICAgICB1bnNpZ25lZCBpbnQg aW5kZXgsIGksIG5yID0gMTsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtNTk3LDMxICs1 OTgsNTAgQEAgc3RhdGljIGludCBtc2lfbXNnX3RvX3JlbWFwX2VudHJ5KAogCiAgICAgbWVtY3B5 KCZuZXdfaXJlLCBpcmVtYXBfZW50cnksIHNpemVvZihzdHJ1Y3QgaXJlbWFwX2VudHJ5KSk7CiAK LSAgICAvKiBTZXQgaW50ZXJydXB0IHJlbWFwcGluZyB0YWJsZSBlbnRyeSAqLwotICAgIG5ld19p cmUucmVtYXAuZnBkID0gMDsKLSAgICBuZXdfaXJlLnJlbWFwLmRtID0gKG1zZy0+YWRkcmVzc19s byA+PiBNU0lfQUREUl9ERVNUTU9ERV9TSElGVCkgJiAweDE7Ci0gICAgbmV3X2lyZS5yZW1hcC50 bSA9IChtc2ctPmRhdGEgPj4gTVNJX0RBVEFfVFJJR0dFUl9TSElGVCkgJiAweDE7Ci0gICAgbmV3 X2lyZS5yZW1hcC5kbG0gPSAobXNnLT5kYXRhID4+IE1TSV9EQVRBX0RFTElWRVJZX01PREVfU0hJ RlQpICYgMHgxOwotICAgIC8qIEhhcmR3YXJlIHJlcXVpcmUgUkggPSAxIGZvciBMUFIgZGVsaXZl cnkgbW9kZSAqLwotICAgIG5ld19pcmUucmVtYXAucmggPSAobmV3X2lyZS5yZW1hcC5kbG0gPT0g ZGVzdF9Mb3dlc3RQcmlvKTsKLSAgICBuZXdfaXJlLnJlbWFwLmF2YWlsID0gMDsKLSAgICBuZXdf aXJlLnJlbWFwLnJlc18xID0gMDsKLSAgICBuZXdfaXJlLnJlbWFwLnZlY3RvciA9IChtc2ctPmRh dGEgPj4gTVNJX0RBVEFfVkVDVE9SX1NISUZUKSAmCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgTVNJX0RBVEFfVkVDVE9SX01BU0s7Ci0gICAgbmV3X2lyZS5yZW1hcC5yZXNfMiA9IDA7Ci0g ICAgaWYgKCB4MmFwaWNfZW5hYmxlZCApCi0gICAgICAgIG5ld19pcmUucmVtYXAuZHN0ID0gbXNn LT5kZXN0MzI7CisgICAgaWYgKCAhcGlfZGVzYyApCisgICAgeworICAgICAgICAvKiBTZXQgaW50 ZXJydXB0IHJlbWFwcGluZyB0YWJsZSBlbnRyeSAqLworICAgICAgICBuZXdfaXJlLnJlbWFwLmZw ZCA9IDA7CisgICAgICAgIG5ld19pcmUucmVtYXAuZG0gPSAobXNnLT5hZGRyZXNzX2xvID4+IE1T SV9BRERSX0RFU1RNT0RFX1NISUZUKSAmIDB4MTsKKyAgICAgICAgbmV3X2lyZS5yZW1hcC50bSA9 IChtc2ctPmRhdGEgPj4gTVNJX0RBVEFfVFJJR0dFUl9TSElGVCkgJiAweDE7CisgICAgICAgIG5l d19pcmUucmVtYXAuZGxtID0gKG1zZy0+ZGF0YSA+PiBNU0lfREFUQV9ERUxJVkVSWV9NT0RFX1NI SUZUKSAmIDB4MTsKKyAgICAgICAgLyogSGFyZHdhcmUgcmVxdWlyZSBSSCA9IDEgZm9yIExQUiBk ZWxpdmVyeSBtb2RlICovCisgICAgICAgIG5ld19pcmUucmVtYXAucmggPSAobmV3X2lyZS5yZW1h cC5kbG0gPT0gZGVzdF9Mb3dlc3RQcmlvKTsKKyAgICAgICAgbmV3X2lyZS5yZW1hcC5hdmFpbCA9 IDA7CisgICAgICAgIG5ld19pcmUucmVtYXAucmVzXzEgPSAwOworICAgICAgICBuZXdfaXJlLnJl bWFwLnZlY3RvciA9IChtc2ctPmRhdGEgPj4gTVNJX0RBVEFfVkVDVE9SX1NISUZUKSAmCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1TSV9EQVRBX1ZFQ1RPUl9NQVNLOworICAgICAg ICBuZXdfaXJlLnJlbWFwLnJlc18yID0gMDsKKyAgICAgICAgaWYgKCB4MmFwaWNfZW5hYmxlZCAp CisgICAgICAgICAgICBuZXdfaXJlLnJlbWFwLmRzdCA9IG1zZy0+ZGVzdDMyOworICAgICAgICBl bHNlCisgICAgICAgICAgICBuZXdfaXJlLnJlbWFwLmRzdCA9ICgobXNnLT5hZGRyZXNzX2xvID4+ IE1TSV9BRERSX0RFU1RfSURfU0hJRlQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmIDB4ZmYpIDw8IDg7CisKKyAgICAgICAgbmV3X2lyZS5yZW1hcC5yZXNfMyA9IDA7CisgICAg ICAgIG5ld19pcmUucmVtYXAucmVzXzQgPSAwOworICAgICAgICBuZXdfaXJlLnJlbWFwLnAgPSAx OyAgICAvKiBmaW5hbGx5LCBzZXQgcHJlc2VudCBiaXQgKi8KKyAgICB9CiAgICAgZWxzZQotICAg ICAgICBuZXdfaXJlLnJlbWFwLmRzdCA9ICgobXNnLT5hZGRyZXNzX2xvID4+IE1TSV9BRERSX0RF U1RfSURfU0hJRlQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgMHhmZikgPDwgODsK KyAgICB7CisgICAgICAgIG5ld19pcmUucG9zdC5mcGQgPSAwOworICAgICAgICBuZXdfaXJlLnBv c3QucmVzXzEgPSAwOworICAgICAgICBuZXdfaXJlLnBvc3QucmVzXzIgPSAwOworICAgICAgICBu ZXdfaXJlLnBvc3QudXJnID0gMDsKKyAgICAgICAgbmV3X2lyZS5wb3N0LmltID0gMTsKKyAgICAg ICAgbmV3X2lyZS5wb3N0LnZlY3RvciA9IGd2ZWM7CisgICAgICAgIG5ld19pcmUucG9zdC5yZXNf MyA9IDA7CisgICAgICAgIG5ld19pcmUucG9zdC5yZXNfNCA9IDA7CisgICAgICAgIG5ld19pcmUu cG9zdC5yZXNfNSA9IDA7CisgICAgICAgIG5ld19pcmUucG9zdC5wZGFfbCA9IHZpcnRfdG9fbWFk ZHIocGlfZGVzYykgPj4gKDMyIC0gUERBX0xPV19CSVQpOworICAgICAgICBuZXdfaXJlLnBvc3Qu cGRhX2ggPSB2aXJ0X3RvX21hZGRyKHBpX2Rlc2MpID4+IDMyOworICAgICAgICBuZXdfaXJlLnBv c3QucCA9IDE7ICAgIC8qIGZpbmFsbHksIHNldCBwcmVzZW50IGJpdCAqLworICAgIH0KIAogICAg IGlmICggcGRldiApCiAgICAgICAgIHNldF9tc2lfc291cmNlX2lkKHBkZXYsICZuZXdfaXJlKTsK ICAgICBlbHNlCiAgICAgICAgIHNldF9ocGV0X3NvdXJjZV9pZChtc2lfZGVzYy0+aHBldF9pZCwg Jm5ld19pcmUpOwotICAgIG5ld19pcmUucmVtYXAucmVzXzMgPSAwOwotICAgIG5ld19pcmUucmVt YXAucmVzXzQgPSAwOwotICAgIG5ld19pcmUucmVtYXAucCA9IDE7ICAgIC8qIGZpbmFsbHksIHNl dCBwcmVzZW50IGJpdCAqLwogCiAgICAgLyogbm93IGNvbnN0cnVjdCBuZXcgTVNJL01TSS1YIHJ0 ZSBlbnRyeSAqLwogICAgIHJlbWFwX3J0ZSA9IChzdHJ1Y3QgbXNpX21zZ19yZW1hcF9lbnRyeSAq KW1zZzsKQEAgLTYzNyw3ICs2NTcsMjMgQEAgc3RhdGljIGludCBtc2lfbXNnX3RvX3JlbWFwX2Vu dHJ5KAogICAgIHJlbWFwX3J0ZS0+YWRkcmVzc19oaSA9IDA7CiAgICAgcmVtYXBfcnRlLT5kYXRh ID0gaW5kZXggLSBpOwogCi0gICAgbWVtY3B5KGlyZW1hcF9lbnRyeSwgJm5ld19pcmUsIHNpemVv ZihzdHJ1Y3QgaXJlbWFwX2VudHJ5KSk7CisgICAgaWYgKCAhcGlfZGVzYyApCisgICAgICAgIG1l bWNweShpcmVtYXBfZW50cnksICZuZXdfaXJlLCBzaXplb2Yoc3RydWN0IGlyZW1hcF9lbnRyeSkp OworICAgIGVsc2UKKyAgICB7CisgICAgICAgIF9fdWludDEyOF90IHJldDsKKworICAgICAgICBv bGRfaXJlID0gKmlyZW1hcF9lbnRyeTsKKyAgICAgICAgcmV0ID0gY21weGNoZzE2YihpcmVtYXBf ZW50cnksICZvbGRfaXJlLCAmbmV3X2lyZSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSW4g dGhlIGFib3ZlLCB3ZSB1c2UgY21weGNoZzE2IHRvIGF0b21pY2FsbHkgdXBkYXRlIHRoZSAxMjgt Yml0IElSVEUsCisgICAgICAgICAqIGFuZCB0aGUgaGFyZHdhcmUgY2Fubm90IHVwZGF0ZSB0aGUg SVJURSBiZWhpbmQgdXMsIHNvIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgICAgICogb2YgY21weGNo ZzE2IHNob3VsZCBiZSB0aGUgc2FtZSBhcyBvbGRfaXJlLiBUaGlzIEFTU0VSVCB2YWxpZGF0ZSBp dC4KKyAgICAgICAgICovCisgICAgICAgIEFTU0VSVChyZXQgPT0gb2xkX2lyZS52YWwpOworICAg IH0KKwogICAgIGlvbW11X2ZsdXNoX2NhY2hlX2VudHJ5KGlyZW1hcF9lbnRyeSwgc2l6ZW9mKHN0 cnVjdCBpcmVtYXBfZW50cnkpKTsKICAgICBpb21tdV9mbHVzaF9pZWNfaW5kZXgoaW9tbXUsIDAs IGluZGV4KTsKIApAQCAtNjY4LDcgKzcwNCw4IEBAIGludCBtc2lfbXNnX3dyaXRlX3JlbWFwX3J0 ZSgKIAogICAgIGRyaGQgPSBwZGV2ID8gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYp CiAgICAgICAgICAgICAgICAgOiBocGV0X3RvX2RyaGQobXNpX2Rlc2MtPmhwZXRfaWQpOwotICAg IHJldHVybiBkcmhkID8gbXNpX21zZ190b19yZW1hcF9lbnRyeShkcmhkLT5pb21tdSwgcGRldiwg bXNpX2Rlc2MsIG1zZykKKyAgICByZXR1cm4gZHJoZCA/IG1zaV9tc2dfdG9fcmVtYXBfZW50cnko ZHJoZC0+aW9tbXUsIHBkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1zaV9kZXNjLCBtc2csIE5VTEwsIDApCiAgICAgICAgICAgICAgICAgOiAtRUlOVkFMOwog fQogCkBAIC05MDIsNDIgKzkzOSw2IEBAIHZvaWQgaW9tbXVfZGlzYWJsZV94MmFwaWNfSVIodm9p ZCkKICAgICAgICAgZGlzYWJsZV9xaW52YWwoZHJoZC0+aW9tbXUpOwogfQogCi1zdGF0aWMgdm9p ZCBzZXR1cF9wb3N0ZWRfaXJ0ZSgKLSAgICBzdHJ1Y3QgaXJlbWFwX2VudHJ5ICpuZXdfaXJlLCBj b25zdCBzdHJ1Y3QgaXJlbWFwX2VudHJ5ICpvbGRfaXJlLAotICAgIGNvbnN0IHN0cnVjdCBwaV9k ZXNjICpwaV9kZXNjLCBjb25zdCB1aW50OF90IGd2ZWMpCi17Ci0gICAgbWVtc2V0KG5ld19pcmUs IDAsIHNpemVvZigqbmV3X2lyZSkpOwotCi0gICAgLyoKLSAgICAgKiAnaW0nIGZpbGVkIGRlY2lk ZXMgd2hldGhlciB0aGUgaXJ0ZSBpcyBpbiBwb3N0ZWQgZm9ybWF0ICh3aXRoIHZhbHVlIDEpCi0g ICAgICogb3IgcmVtYXBwZWQgZm9ybWF0ICh3aXRoIHZhbHVlIDApLCBpZiB0aGUgb2xkIGlydGUg aXMgaW4gcmVtYXBwZWQgZm9ybWF0LAotICAgICAqIHdlIGNvcHkgdGhpbmdzIGZyb20gcmVtYXBw ZWQgcGFydCBpbiAnc3RydWN0IGlyZW1hcF9lbnRyeScsIG90aGVyd2lzZSwKLSAgICAgKiB3ZSBj b3B5IGZyb20gcG9zdGVkIHBhcnQuCi0gICAgICovCi0gICAgaWYgKCAhb2xkX2lyZS0+cmVtYXAu aW0gKQotICAgIHsKLSAgICAgICAgbmV3X2lyZS0+cG9zdC5wID0gb2xkX2lyZS0+cmVtYXAucDsK LSAgICAgICAgbmV3X2lyZS0+cG9zdC5mcGQgPSBvbGRfaXJlLT5yZW1hcC5mcGQ7Ci0gICAgICAg IG5ld19pcmUtPnBvc3Quc2lkID0gb2xkX2lyZS0+cmVtYXAuc2lkOwotICAgICAgICBuZXdfaXJl LT5wb3N0LnNxID0gb2xkX2lyZS0+cmVtYXAuc3E7Ci0gICAgICAgIG5ld19pcmUtPnBvc3Quc3Z0 ID0gb2xkX2lyZS0+cmVtYXAuc3Z0OwotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAgICBu ZXdfaXJlLT5wb3N0LnAgPSBvbGRfaXJlLT5wb3N0LnA7Ci0gICAgICAgIG5ld19pcmUtPnBvc3Qu ZnBkID0gb2xkX2lyZS0+cG9zdC5mcGQ7Ci0gICAgICAgIG5ld19pcmUtPnBvc3Quc2lkID0gb2xk X2lyZS0+cG9zdC5zaWQ7Ci0gICAgICAgIG5ld19pcmUtPnBvc3Quc3EgPSBvbGRfaXJlLT5wb3N0 LnNxOwotICAgICAgICBuZXdfaXJlLT5wb3N0LnN2dCA9IG9sZF9pcmUtPnBvc3Quc3Z0OwotICAg ICAgICBuZXdfaXJlLT5wb3N0LnVyZyA9IG9sZF9pcmUtPnBvc3QudXJnOwotICAgIH0KLQotICAg IG5ld19pcmUtPnBvc3QuaW0gPSAxOwotICAgIG5ld19pcmUtPnBvc3QudmVjdG9yID0gZ3ZlYzsK LSAgICBuZXdfaXJlLT5wb3N0LnBkYV9sID0gdmlydF90b19tYWRkcihwaV9kZXNjKSA+PiAoMzIg LSBQREFfTE9XX0JJVCk7Ci0gICAgbmV3X2lyZS0+cG9zdC5wZGFfaCA9IHZpcnRfdG9fbWFkZHIo cGlfZGVzYykgPj4gMzI7Ci19Ci0KIC8qCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdXBk YXRlIHRoZSBJUlRFIGZvciBwb3N0ZWQtaW50ZXJydXB0CiAgKiB3aGVuIGd1ZXN0IGNoYW5nZXMg TVNJL01TSS1YIGluZm9ybWF0aW9uLgpAQCAtOTQ2LDE3ICs5NDcsMTIgQEAgaW50IHBpX3VwZGF0 ZV9pcnRlKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBzdHJ1Y3QgcGlycSAqcGlycSwKICAg ICBjb25zdCB1aW50OF90IGd2ZWMpCiB7CiAgICAgc3RydWN0IGlycV9kZXNjICpkZXNjOwotICAg IGNvbnN0IHN0cnVjdCBtc2lfZGVzYyAqbXNpX2Rlc2M7Ci0gICAgaW50IHJlbWFwX2luZGV4Owor ICAgIHN0cnVjdCBtc2lfZGVzYyAqbXNpX2Rlc2M7CiAgICAgaW50IHJjID0gMDsKICAgICBjb25z dCBzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldjsKICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3Vu aXQgKmRyaGQ7CiAgICAgc3RydWN0IGlvbW11ICppb21tdTsKLSAgICBzdHJ1Y3QgaXJfY3RybCAq aXJfY3RybDsKLSAgICBzdHJ1Y3QgaXJlbWFwX2VudHJ5ICppcmVtYXBfZW50cmllcyA9IE5VTEws ICpwID0gTlVMTDsKLSAgICBzdHJ1Y3QgaXJlbWFwX2VudHJ5IG5ld19pcmUsIG9sZF9pcmU7CiAg ICAgY29uc3Qgc3RydWN0IHBpX2Rlc2MgKnBpX2Rlc2MgPSAmdi0+YXJjaC5odm1fdm14LnBpX2Rl c2M7Ci0gICAgX191aW50MTI4X3QgcmV0OwogCiAgICAgZGVzYyA9IHBpcnFfc3Bpbl9sb2NrX2ly cV9kZXNjKHBpcnEsIE5VTEwpOwogICAgIGlmICggIWRlc2MgKQpAQCAtOTc2LDggKzk3Miw2IEBA IGludCBwaV91cGRhdGVfaXJ0ZShjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgc3RydWN0IHBp cnEgKnBpcnEsCiAgICAgICAgIGdvdG8gdW5sb2NrX291dDsKICAgICB9CiAKLSAgICByZW1hcF9p bmRleCA9IG1zaV9kZXNjLT5yZW1hcF9pbmRleDsKLQogICAgIHNwaW5fdW5sb2NrX2lycSgmZGVz Yy0+bG9jayk7CiAKICAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CkBAIC05OTIsMzUgKzk4 NiwxMSBAQCBpbnQgcGlfdXBkYXRlX2lydGUoY29uc3Qgc3RydWN0IHZjcHUgKnYsIGNvbnN0IHN0 cnVjdCBwaXJxICpwaXJxLAogICAgICAgICByZXR1cm4gLUVOT0RFVjsKIAogICAgIGlvbW11ID0g ZHJoZC0+aW9tbXU7Ci0gICAgaXJfY3RybCA9IGlvbW11X2lyX2N0cmwoaW9tbXUpOwotICAgIGlm ICggIWlyX2N0cmwgKQorICAgIGlmICggIWlvbW11X2lyX2N0cmwoaW9tbXUpICkKICAgICAgICAg cmV0dXJuIC1FTk9ERVY7CiAKLSAgICBzcGluX2xvY2tfaXJxKCZpcl9jdHJsLT5pcmVtYXBfbG9j ayk7Ci0KLSAgICBHRVRfSVJFTUFQX0VOVFJZKGlyX2N0cmwtPmlyZW1hcF9tYWRkciwgcmVtYXBf aW5kZXgsIGlyZW1hcF9lbnRyaWVzLCBwKTsKLQotICAgIG9sZF9pcmUgPSAqcDsKLQotICAgIC8q IFNldHVwL1VwZGF0ZSBpbnRlcnJ1cHQgcmVtYXBwaW5nIHRhYmxlIGVudHJ5LiAqLwotICAgIHNl dHVwX3Bvc3RlZF9pcnRlKCZuZXdfaXJlLCAmb2xkX2lyZSwgcGlfZGVzYywgZ3ZlYyk7Ci0gICAg cmV0ID0gY21weGNoZzE2YihwLCAmb2xkX2lyZSwgJm5ld19pcmUpOwotCi0gICAgLyoKLSAgICAg KiBJbiB0aGUgYWJvdmUsIHdlIHVzZSBjbXB4Y2hnMTYgdG8gYXRvbWljYWxseSB1cGRhdGUgdGhl IDEyOC1iaXQgSVJURSwKLSAgICAgKiBhbmQgdGhlIGhhcmR3YXJlIGNhbm5vdCB1cGRhdGUgdGhl IElSVEUgYmVoaW5kIHVzLCBzbyB0aGUgcmV0dXJuIHZhbHVlCi0gICAgICogb2YgY21weGNoZzE2 IHNob3VsZCBiZSB0aGUgc2FtZSBhcyBvbGRfaXJlLiBUaGlzIEFTU0VSVCB2YWxpZGF0ZSBpdC4K LSAgICAgKi8KLSAgICBBU1NFUlQocmV0ID09IG9sZF9pcmUudmFsKTsKLQotICAgIGlvbW11X2Zs dXNoX2NhY2hlX2VudHJ5KHAsIHNpemVvZigqcCkpOwotICAgIGlvbW11X2ZsdXNoX2llY19pbmRl eChpb21tdSwgMCwgcmVtYXBfaW5kZXgpOwotCi0gICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGly ZW1hcF9lbnRyaWVzKTsKLQotICAgIHNwaW5fdW5sb2NrX2lycSgmaXJfY3RybC0+aXJlbWFwX2xv Y2spOwotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1zaV9tc2dfdG9fcmVtYXBfZW50cnko aW9tbXUsIHBjaV9kZXYsIG1zaV9kZXNjLCAmbXNpX2Rlc2MtPm1zZywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwaV9kZXNjLCBndmVjKTsKIAogIHVubG9ja19vdXQ6CiAgICAg c3Bpbl91bmxvY2tfaXJxKCZkZXNjLT5sb2NrKTsKLS0gCjIuMS4wCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==