From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [PATCH V2 21/25] tools/libxc: Add a new interface to bind remapping format msi with pirq Date: Wed, 9 Aug 2017 16:34:22 -0400 Message-ID: <1502310866-10450-22-git-send-email-tianyu.lan@intel.com> References: <1502310866-10450-1-git-send-email-tianyu.lan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502310866-10450-1-git-send-email-tianyu.lan@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: Lan Tianyu , kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, julien.grall@arm.com, jbeulich@suse.com, Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KCkludHJvZHVjZSBhIG5ldyBiaW5k aW5nIHJlbGF0aW9uc2hpcCBhbmQgcHJvdmlkZSBhIG5ldyBpbnRlcmZhY2UgdG8KbWFuYWdlIHRo ZSBuZXcgcmVsYXRpb25zaGlwLgoKU2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTGFuIFRpYW55dSA8dGlhbnl1LmxhbkBpbnRlbC5jb20+ Ci0tLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggfCAgMTcgKysrKysrCiB0b29scy9s aWJ4Yy94Y19kb21haW4uYyAgICAgICB8ICA1MyArKysrKysrKysrKysrKysrKwogeGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvaW8uYyAgfCAxMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggICB8ICAgNyArKysKIHhl bi9pbmNsdWRlL3hlbi9odm0vaXJxLmggICAgIHwgICA3ICsrKwogNSBmaWxlcyBjaGFuZ2VkLCAx OTggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRl eCBkZmFhOWQ1Li5iMGE5NDM3IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0 cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMTcyMCw2ICsxNzIw LDE1IEBAIGludCB4Y19kb21haW5faW9wb3J0X21hcHBpbmcoeGNfaW50ZXJmYWNlICp4Y2gsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5yX3BvcnRzLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBhZGRfbWFwcGluZyk7CiAKK2ludCB4Y19kb21h aW5fdXBkYXRlX21zaV9pcnFfcmVtYXBwaW5nKAorICAgIHhjX2ludGVyZmFjZSAqeGNoLAorICAg IHVpbnQzMl90IGRvbWlkLAorICAgIHVpbnQzMl90IHBpcnEsCisgICAgdWludDMyX3Qgc291cmNl X2lkLAorICAgIHVpbnQzMl90IGRhdGEsCisgICAgdWludDY0X3QgYWRkciwKKyAgICB1aW50NjRf dCBndGFibGUpOworCiBpbnQgeGNfZG9tYWluX3VwZGF0ZV9tc2lfaXJxKAogICAgIHhjX2ludGVy ZmFjZSAqeGNoLAogICAgIHVpbnQzMl90IGRvbWlkLApAQCAtMTczNCw2ICsxNzQzLDE0IEBAIGlu dCB4Y19kb21haW5fdW5iaW5kX21zaV9pcnEoeGNfaW50ZXJmYWNlICp4Y2gsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHBpcnEsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90IGdmbGFncyk7CiAKK2ludCB4Y19kb21haW5fdW5iaW5kX21zaV9pcnFf cmVtYXBwaW5nKAorICAgIHhjX2ludGVyZmFjZSAqeGNoLAorICAgIHVpbnQzMl90IGRvbWlkLAor ICAgIHVpbnQzMl90IHBpcnEsCisgICAgdWludDMyX3Qgc291cmNlX2lkLAorICAgIHVpbnQzMl90 IGRhdGEsCisgICAgdWludDY0X3QgYWRkcik7CisKIGludCB4Y19kb21haW5fYmluZF9wdF9pcnEo eGNfaW50ZXJmYWNlICp4Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRv bWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IG1hY2hpbmVfaXJxLApkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfZG9tYWluLmMgYi90b29scy9saWJ4Yy94Y19kb21haW4u YwppbmRleCAzYmFiNGU4Li40YjZhNTEwIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19kb21h aW4uYworKysgYi90b29scy9saWJ4Yy94Y19kb21haW4uYwpAQCAtMTcwMiw4ICsxNzAyLDM0IEBA IGludCB4Y19kZWFzc2lnbl9kdF9kZXZpY2UoCiAgICAgcmV0dXJuIHJjOwogfQogCitpbnQgeGNf ZG9tYWluX3VwZGF0ZV9tc2lfaXJxX3JlbWFwcGluZygKKyAgICB4Y19pbnRlcmZhY2UgKnhjaCwK KyAgICB1aW50MzJfdCBkb21pZCwKKyAgICB1aW50MzJfdCBwaXJxLAorICAgIHVpbnQzMl90IHNv dXJjZV9pZCwKKyAgICB1aW50MzJfdCBkYXRhLAorICAgIHVpbnQ2NF90IGFkZHIsCisgICAgdWlu dDY0X3QgZ3RhYmxlKQoreworICAgIGludCByYzsKKyAgICB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJx X3QgKmJpbmQ7CisKKyAgICBERUNMQVJFX0RPTUNUTDsKIAorICAgIGRvbWN0bC5jbWQgPSBYRU5f RE9NQ1RMX2JpbmRfcHRfaXJxOworICAgIGRvbWN0bC5kb21haW4gPSAoZG9taWRfdClkb21pZDsK IAorICAgIGJpbmQgPSAmKGRvbWN0bC51LmJpbmRfcHRfaXJxKTsKKyAgICBiaW5kLT5pcnFfdHlw ZSA9IFBUX0lSUV9UWVBFX01TSV9JUjsKKyAgICBiaW5kLT5tYWNoaW5lX2lycSA9IHBpcnE7Cisg ICAgYmluZC0+dS5tc2lfaXIuc291cmNlX2lkID0gc291cmNlX2lkOworICAgIGJpbmQtPnUubXNp X2lyLmRhdGEgPSBkYXRhOworICAgIGJpbmQtPnUubXNpX2lyLmFkZHIgPSBhZGRyOworICAgIGJp bmQtPnUubXNpX2lyLmd0YWJsZSA9IGd0YWJsZTsKKworICAgIHJjID0gZG9fZG9tY3RsKHhjaCwg JmRvbWN0bCk7CisgICAgcmV0dXJuIHJjOworfQogCiBpbnQgeGNfZG9tYWluX3VwZGF0ZV9tc2lf aXJxKAogICAgIHhjX2ludGVyZmFjZSAqeGNoLApAQCAtMTczMiw2ICsxNzU4LDMzIEBAIGludCB4 Y19kb21haW5fdXBkYXRlX21zaV9pcnEoCiAgICAgcmV0dXJuIHJjOwogfQogCitpbnQgeGNfZG9t YWluX3VuYmluZF9tc2lfaXJxX3JlbWFwcGluZygKKyAgICB4Y19pbnRlcmZhY2UgKnhjaCwKKyAg ICB1aW50MzJfdCBkb21pZCwKKyAgICB1aW50MzJfdCBwaXJxLAorICAgIHVpbnQzMl90IHNvdXJj ZV9pZCwKKyAgICB1aW50MzJfdCBkYXRhLAorICAgIHVpbnQ2NF90IGFkZHIpCit7CisgICAgaW50 IHJjOworICAgIHhlbl9kb21jdGxfYmluZF9wdF9pcnFfdCAqYmluZDsKKworICAgIERFQ0xBUkVf RE9NQ1RMOworCisgICAgZG9tY3RsLmNtZCA9IFhFTl9ET01DVExfdW5iaW5kX3B0X2lycTsKKyAg ICBkb21jdGwuZG9tYWluID0gKGRvbWlkX3QpZG9taWQ7CisKKyAgICBiaW5kID0gJihkb21jdGwu dS5iaW5kX3B0X2lycSk7CisgICAgYmluZC0+aXJxX3R5cGUgPSBQVF9JUlFfVFlQRV9NU0lfSVI7 CisgICAgYmluZC0+bWFjaGluZV9pcnEgPSBwaXJxOworICAgIGJpbmQtPnUubXNpX2lyLnNvdXJj ZV9pZCA9IHNvdXJjZV9pZDsKKyAgICBiaW5kLT51Lm1zaV9pci5kYXRhID0gZGF0YTsKKyAgICBi aW5kLT51Lm1zaV9pci5hZGRyID0gYWRkcjsKKworICAgIHJjID0gZG9fZG9tY3RsKHhjaCwgJmRv bWN0bCk7CisgICAgcmV0dXJuIHJjOworfQorCiBpbnQgeGNfZG9tYWluX3VuYmluZF9tc2lfaXJx KAogICAgIHhjX2ludGVyZmFjZSAqeGNoLAogICAgIHVpbnQzMl90IGRvbWlkLApkaWZmIC0tZ2l0 IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW8uYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2lvLmMKaW5kZXggNGQ0NTdmNi4uMDUxMDg4NyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvaW8uYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pby5jCkBAIC0yNzYs NiArMjc2LDkyIEBAIHN0YXRpYyBzdHJ1Y3QgdmNwdSAqdmVjdG9yX2hhc2hpbmdfZGVzdChjb25z dCBzdHJ1Y3QgZG9tYWluICpkLAogICAgIHJldHVybiBkZXN0OwogfQogCitzdGF0aWMgaW5saW5l IHZvaWQgc2V0X2h2bV9nbXNpX2luZm8oc3RydWN0IGh2bV9nbXNpX2luZm8gKm1zaSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxX3Qg KnB0X2lycV9iaW5kKQoreworICAgIGlmICggcHRfaXJxX2JpbmQtPmlycV90eXBlID09IFBUX0lS UV9UWVBFX01TSSApCisgICAgeworICAgICAgICBtc2ktPmxlZ2FjeS5ndmVjID0gcHRfaXJxX2Jp bmQtPnUubXNpLmd2ZWM7CisgICAgICAgIG1zaS0+bGVnYWN5LmdmbGFncyA9IHB0X2lycV9iaW5k LT51Lm1zaS5nZmxhZ3M7CisgICAgfQorICAgIGVsc2UgaWYgKCBwdF9pcnFfYmluZC0+aXJxX3R5 cGUgPT0gUFRfSVJRX1RZUEVfTVNJX0lSICkKKyAgICB7CisgICAgICAgIG1zaS0+aW50cmVtYXAu c291cmNlX2lkID0gcHRfaXJxX2JpbmQtPnUubXNpX2lyLnNvdXJjZV9pZDsKKyAgICAgICAgbXNp LT5pbnRyZW1hcC5kYXRhID0gcHRfaXJxX2JpbmQtPnUubXNpX2lyLmRhdGE7CisgICAgICAgIG1z aS0+aW50cmVtYXAuYWRkciA9IHB0X2lycV9iaW5kLT51Lm1zaV9pci5hZGRyOworICAgIH0KKyAg ICBlbHNlCisgICAgICAgIEJVRygpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfaHZt X2dtc2lfaW5mbyhzdHJ1Y3QgaHZtX2dtc2lfaW5mbyAqbXNpLCBpbnQgaXJxX3R5cGUpCit7Cisg ICAgaWYgKCBpcnFfdHlwZSA9PSBQVF9JUlFfVFlQRV9NU0kgKQorICAgIHsKKyAgICAgICAgbXNp LT5sZWdhY3kuZ3ZlYyA9IDA7CisgICAgICAgIG1zaS0+bGVnYWN5LmdmbGFncyA9IDA7CisgICAg fQorICAgIGVsc2UgaWYgKCBpcnFfdHlwZSA9PSBQVF9JUlFfVFlQRV9NU0lfSVIgKQorICAgIHsK KyAgICAgICAgbXNpLT5pbnRyZW1hcC5zb3VyY2VfaWQgPSAwOworICAgICAgICBtc2ktPmludHJl bWFwLmRhdGEgPSAwOworICAgICAgICBtc2ktPmludHJlbWFwLmFkZHIgPSAwOworICAgIH0KKyAg ICBlbHNlCisgICAgICAgIEJVRygpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaHZtX2dtc2lf aW5mb19uZWVkX3VwZGF0ZShzdHJ1Y3QgaHZtX2dtc2lfaW5mbyAqbXNpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxX3QgKnB0 X2lycV9iaW5kKQoreworICAgIGlmICggcHRfaXJxX2JpbmQtPmlycV90eXBlID09IFBUX0lSUV9U WVBFX01TSSApCisgICAgICAgIHJldHVybiAoKG1zaS0+bGVnYWN5Lmd2ZWMgIT0gcHRfaXJxX2Jp bmQtPnUubXNpLmd2ZWMpIHx8CisgICAgICAgICAgICAgICAgKG1zaS0+bGVnYWN5LmdmbGFncyAh PSBwdF9pcnFfYmluZC0+dS5tc2kuZ2ZsYWdzKSk7CisgICAgZWxzZSBpZiAoIHB0X2lycV9iaW5k LT5pcnFfdHlwZSA9PSBQVF9JUlFfVFlQRV9NU0lfSVIgKQorICAgICAgICByZXR1cm4gKChtc2kt PmludHJlbWFwLnNvdXJjZV9pZCAhPSBwdF9pcnFfYmluZC0+dS5tc2lfaXIuc291cmNlX2lkKSB8 fAorICAgICAgICAgICAgICAgIChtc2ktPmludHJlbWFwLmRhdGEgIT0gcHRfaXJxX2JpbmQtPnUu bXNpX2lyLmRhdGEpIHx8CisgICAgICAgICAgICAgICAgKG1zaS0+aW50cmVtYXAuYWRkciAhPSBw dF9pcnFfYmluZC0+dS5tc2lfaXIuYWRkcikpOworICAgIEJVRygpOworICAgIHJldHVybiAwOwor fQorCitzdGF0aWMgaW50IHBpcnFfZHBjaV8yX21zaV9hdHRyKHN0cnVjdCBkb21haW4gKmQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBodm1fcGlycV9kcGNpICpwaXJx X2RwY2ksIHVpbnQ4X3QgKmd2ZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQ4X3QgKmRlc3QsIHVpbnQ4X3QgKmRtLCB1aW50OF90ICpkbG0pCit7CisgICAgaW50IHJjID0g MDsKKworICAgIGlmICggcGlycV9kcGNpLT5mbGFncyAmIEhWTV9JUlFfRFBDSV9HVUVTVF9NU0kg KQorICAgIHsKKyAgICAgICAgKmd2ZWMgPSBwaXJxX2RwY2ktPmdtc2kubGVnYWN5Lmd2ZWM7Cisg ICAgICAgICpkZXN0ID0gcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MgJiBWTVNJX0RFU1Rf SURfTUFTSzsKKyAgICAgICAgKmRtID0gISEocGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3Mg JiBWTVNJX0RNX01BU0spOworICAgICAgICAqZGxtID0gKHBpcnFfZHBjaS0+Z21zaS5sZWdhY3ku Z2ZsYWdzICYgVk1TSV9ERUxJVl9NQVNLKSA+PgorICAgICAgICAgICAgICAgIEdGTEFHU19TSElG VF9ERUxJVl9NT0RFOworICAgIH0KKyAgICBlbHNlIGlmICggcGlycV9kcGNpLT5mbGFncyAmIEhW TV9JUlFfRFBDSV9HVUVTVF9NU0lfSVIgKQorICAgIHsKKyAgICAgICAgc3RydWN0IGlycV9yZW1h cHBpbmdfcmVxdWVzdCByZXF1ZXN0OworICAgICAgICBzdHJ1Y3QgaXJxX3JlbWFwcGluZ19pbmZv IGlycV9pbmZvOworCisgICAgICAgIGlycV9yZXF1ZXN0X21zaV9maWxsKCZyZXF1ZXN0LCBwaXJx X2RwY2ktPmdtc2kuaW50cmVtYXAuc291cmNlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwaXJxX2RwY2ktPmdtc2kuaW50cmVtYXAuYWRkciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGlycV9kcGNpLT5nbXNpLmludHJlbWFwLmRhdGEpOworICAgICAgICAvKiBDdXJy ZW50bHksIG9ubHkgdmlvbW11IDAgaXMgc3VwcG9ydGVkICovCisgICAgICAgIHJjID0gdmlvbW11 X2dldF9pcnFfaW5mbyhkLCAwLCAmcmVxdWVzdCwgJmlycV9pbmZvKTsKKyAgICAgICAgaWYgKCAh cmMgKQorICAgICAgICB7CisgICAgICAgICAgICAqZ3ZlYyA9IGlycV9pbmZvLnZlY3RvcjsKKyAg ICAgICAgICAgICpkZXN0ID0gaXJxX2luZm8uZGVzdDsKKyAgICAgICAgICAgICpkbSA9IGlycV9p bmZvLmRlc3RfbW9kZTsKKyAgICAgICAgICAgICpkbG0gPSBpcnFfaW5mby5kZWxpdmVyeV9tb2Rl OworICAgICAgICB9CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgQlVHKCk7CisgICAgcmV0dXJu IHJjOworfQorCiBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5kKAogICAgIHN0cnVjdCBkb21haW4gKmQs IHhlbl9kb21jdGxfYmluZF9wdF9pcnFfdCAqcHRfaXJxX2JpbmQpCiB7CkBAIC0zMzksMTcgKzQy NSwyMSBAQCBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5kKAogICAgIHN3aXRjaCAoIHB0X2lycV9iaW5k LT5pcnFfdHlwZSApCiAgICAgewogICAgIGNhc2UgUFRfSVJRX1RZUEVfTVNJOgorICAgIGNhc2Ug UFRfSVJRX1RZUEVfTVNJX0lSOgogICAgIHsKLSAgICAgICAgdWludDhfdCBkZXN0LCBkZXN0X21v ZGUsIGRlbGl2ZXJ5X21vZGU7CisgICAgICAgIHVpbnQ4X3QgZGVzdCA9IDAsIGRlc3RfbW9kZSA9 IDAsIGRlbGl2ZXJ5X21vZGUgPSAwLCBndmVjOwogICAgICAgICBpbnQgZGVzdF92Y3B1X2lkOwog ICAgICAgICBjb25zdCBzdHJ1Y3QgdmNwdSAqdmNwdTsKKyAgICAgICAgYm9vbCBpciA9IChwdF9p cnFfYmluZC0+aXJxX3R5cGUgPT0gUFRfSVJRX1RZUEVfTVNJX0lSKTsKKyAgICAgICAgdWludDY0 X3QgZ3RhYmxlID0gaXIgPyBwdF9pcnFfYmluZC0+dS5tc2lfaXIuZ3RhYmxlIDoKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgcHRfaXJxX2JpbmQtPnUubXNpLmd0YWJsZTsKIAogICAgICAgICBp ZiAoICEocGlycV9kcGNpLT5mbGFncyAmIEhWTV9JUlFfRFBDSV9NQVBQRUQpICkKICAgICAgICAg ewogICAgICAgICAgICAgcGlycV9kcGNpLT5mbGFncyA9IEhWTV9JUlFfRFBDSV9NQVBQRUQgfCBI Vk1fSVJRX0RQQ0lfTUFDSF9NU0kgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhW TV9JUlFfRFBDSV9HVUVTVF9NU0k7Ci0gICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kubGVnYWN5 Lmd2ZWMgPSBwdF9pcnFfYmluZC0+dS5tc2kuZ3ZlYzsKLSAgICAgICAgICAgIHBpcnFfZHBjaS0+ Z21zaS5sZWdhY3kuZ2ZsYWdzID0gcHRfaXJxX2JpbmQtPnUubXNpLmdmbGFnczsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoaXIgPyBIVk1fSVJRX0RQQ0lfR1VFU1RfTVNJX0lSIDoK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFZNX0lSUV9EUENJX0dVRVNUX01TSSk7 CisgICAgICAgICAgICBzZXRfaHZtX2dtc2lfaW5mbygmcGlycV9kcGNpLT5nbXNpLCBwdF9pcnFf YmluZCk7CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICogJ3B0X2lycV9jcmVhdGVfYmlu ZCcgY2FuIGJlIGNhbGxlZCBhZnRlciAncHRfaXJxX2Rlc3Ryb3lfYmluZCcuCiAgICAgICAgICAg ICAgKiBUaGUgJ3BpcnFfY2xlYW51cF9jaGVjaycgd2hpY2ggd291bGQgZnJlZSB0aGUgc3RydWN0 dXJlIGlzIG9ubHkKQEAgLTM2NCw5ICs0NTQsOSBAQCBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5kKAog ICAgICAgICAgICAgcGlycV9kcGNpLT5kb20gPSBkOwogICAgICAgICAgICAgLyogYmluZCBhZnRl ciBodm1faXJxX2RwY2kgaXMgc2V0dXAgdG8gYXZvaWQgcmFjZSB3aXRoIGlycSBoYW5kbGVyKi8K ICAgICAgICAgICAgIHJjID0gcGlycV9ndWVzdF9iaW5kKGQtPnZjcHVbMF0sIGluZm8sIDApOwot ICAgICAgICAgICAgaWYgKCByYyA9PSAwICYmIHB0X2lycV9iaW5kLT51Lm1zaS5ndGFibGUgKQor ICAgICAgICAgICAgaWYgKCByYyA9PSAwICYmIGd0YWJsZSApCiAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgcmMgPSBtc2l4dGJsX3B0X3JlZ2lzdGVyKGQsIGluZm8sIHB0X2lycV9iaW5k LT51Lm1zaS5ndGFibGUpOworICAgICAgICAgICAgICAgIHJjID0gbXNpeHRibF9wdF9yZWdpc3Rl cihkLCBpbmZvLCBndGFibGUpOwogICAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMpICkK ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHBpcnFfZ3Vlc3RfdW5iaW5k KGQsIGluZm8pOwpAQCAtMzgxLDggKzQ3MSw3IEBAIGludCBwdF9pcnFfY3JlYXRlX2JpbmQoCiAg ICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSApCiAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MgPSAwOwot ICAgICAgICAgICAgICAgIHBpcnFfZHBjaS0+Z21zaS5sZWdhY3kuZ3ZlYyA9IDA7CisgICAgICAg ICAgICAgICAgY2xlYXJfaHZtX2dtc2lfaW5mbygmcGlycV9kcGNpLT5nbXNpLCBwdF9pcnFfYmlu ZC0+aXJxX3R5cGUpOwogICAgICAgICAgICAgICAgIHBpcnFfZHBjaS0+ZG9tID0gTlVMTDsKICAg ICAgICAgICAgICAgICBwaXJxX2RwY2ktPmZsYWdzID0gMDsKICAgICAgICAgICAgICAgICBwaXJx X2NsZWFudXBfY2hlY2soaW5mbywgZCk7CkBAIC0zOTIsNyArNDgxLDggQEAgaW50IHB0X2lycV9j cmVhdGVfYmluZCgKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgIHsKLSAgICAgICAg ICAgIHVpbnQzMl90IG1hc2sgPSBIVk1fSVJRX0RQQ0lfTUFDSF9NU0kgfCBIVk1fSVJRX0RQQ0lf R1VFU1RfTVNJOworICAgICAgICAgICAgdWludDMyX3QgbWFzayA9IEhWTV9JUlFfRFBDSV9NQUNI X01TSSB8CisgICAgICAgICAgICAgICAgICAgICAoaXIgPyBIVk1fSVJRX0RQQ0lfR1VFU1RfTVNJ X0lSIDogSFZNX0lSUV9EUENJX0dVRVNUX01TSSk7CiAKICAgICAgICAgICAgIGlmICggKHBpcnFf ZHBjaS0+ZmxhZ3MgJiBtYXNrKSAhPSBtYXNrICkKICAgICAgICAgICAgIHsKQEAgLTQwMSwyOSAr NDkxLDMxIEBAIGludCBwdF9pcnFfY3JlYXRlX2JpbmQoCiAgICAgICAgICAgICB9CiAKICAgICAg ICAgICAgIC8qIElmIHBpcnEgaXMgYWxyZWFkeSBtYXBwZWQgYXMgdm1zaSwgdXBkYXRlIGd1ZXN0 IGRhdGEvYWRkci4gKi8KLSAgICAgICAgICAgIGlmICggcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5n dmVjICE9IHB0X2lycV9iaW5kLT51Lm1zaS5ndmVjIHx8Ci0gICAgICAgICAgICAgICAgIHBpcnFf ZHBjaS0+Z21zaS5sZWdhY3kuZ2ZsYWdzICE9IHB0X2lycV9iaW5kLT51Lm1zaS5nZmxhZ3MgKQor ICAgICAgICAgICAgaWYgKCBodm1fZ21zaV9pbmZvX25lZWRfdXBkYXRlKCZwaXJxX2RwY2ktPmdt c2ksIHB0X2lycV9iaW5kKSApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgLyogRGly ZWN0bHkgY2xlYXIgcGVuZGluZyBFT0lzIGJlZm9yZSBlbmFibGluZyBuZXcgTVNJIGluZm8uICov CiAgICAgICAgICAgICAgICAgcGlycV9ndWVzdF9lb2koaW5mbyk7CiAKLSAgICAgICAgICAgICAg ICBwaXJxX2RwY2ktPmdtc2kubGVnYWN5Lmd2ZWMgPSBwdF9pcnFfYmluZC0+dS5tc2kuZ3ZlYzsK LSAgICAgICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kubGVnYWN5LmdmbGFncyA9IHB0X2lycV9i aW5kLT51Lm1zaS5nZmxhZ3M7CisgICAgICAgICAgICAgICAgc2V0X2h2bV9nbXNpX2luZm8oJnBp cnFfZHBjaS0+Z21zaSwgcHRfaXJxX2JpbmQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAg ICAgICAgIC8qIENhbGN1bGF0ZSBkZXN0X3ZjcHVfaWQgZm9yIE1TSS10eXBlIHBpcnEgbWlncmF0 aW9uLiAqLwotICAgICAgICBkZXN0ID0gcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MgJiBW TVNJX0RFU1RfSURfTUFTSzsKLSAgICAgICAgZGVzdF9tb2RlID0gISEocGlycV9kcGNpLT5nbXNp LmxlZ2FjeS5nZmxhZ3MgJiBWTVNJX0RNX01BU0spOwotICAgICAgICBkZWxpdmVyeV9tb2RlID0g KHBpcnFfZHBjaS0+Z21zaS5sZWdhY3kuZ2ZsYWdzICYgVk1TSV9ERUxJVl9NQVNLKSA+PgotICAg ICAgICAgICAgICAgICAgICAgICAgIEdGTEFHU19TSElGVF9ERUxJVl9NT0RFOwotCi0gICAgICAg IGRlc3RfdmNwdV9pZCA9IGh2bV9naXJxX2Rlc3RfMl92Y3B1X2lkKGQsIGRlc3QsIGRlc3RfbW9k ZSk7CisgICAgICAgIHJjID0gcGlycV9kcGNpXzJfbXNpX2F0dHIoZCwgcGlycV9kcGNpLCAmZ3Zl YywgJmRlc3QsICZkZXN0X21vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JmRlbGl2ZXJ5X21vZGUpOworICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSApCisgICAgICAgIHsK KyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKKyAgICAgICAgICAgIHJl dHVybiAtRUZBVUxUOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlc3Rf dmNwdV9pZCA9IGh2bV9naXJxX2Rlc3RfMl92Y3B1X2lkKGQsIGRlc3QsIGRlc3RfbW9kZSk7CiAg ICAgICAgIHBpcnFfZHBjaS0+Z21zaS5kZXN0X3ZjcHVfaWQgPSBkZXN0X3ZjcHVfaWQ7CiAgICAg ICAgIHNwaW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKIAogICAgICAgICBwaXJxX2RwY2ktPmdt c2kucG9zdGVkID0gZmFsc2U7CiAgICAgICAgIHZjcHUgPSAoZGVzdF92Y3B1X2lkID49IDApID8g ZC0+dmNwdVtkZXN0X3ZjcHVfaWRdIDogTlVMTDsKLSAgICAgICAgaWYgKCBpb21tdV9pbnRwb3N0 ICkKKyAgICAgICAgLyogQ3VycmVudGx5LCBkb24ndCB1c2UgaW50ZXJydXB0IHBvc3RpbmcgZm9y IGd1ZXN0J3MgcmVtYXBwaW5nIE1TSXMgKi8KKyAgICAgICAgaWYgKCBpb21tdV9pbnRwb3N0ICYm ICFpciApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggZGVsaXZlcnlfbW9kZSA9PSBkZXN0 X0xvd2VzdFByaW8gKQogICAgICAgICAgICAgICAgIHZjcHUgPSB2ZWN0b3JfaGFzaGluZ19kZXN0 KGQsIGRlc3QsIGRlc3RfbW9kZSwKQEAgLTQzNSw3ICs1MjcsNyBAQCBpbnQgcHRfaXJxX2NyZWF0 ZV9iaW5kKAogICAgICAgICAgICAgaHZtX21pZ3JhdGVfcGlycXMoZC0+dmNwdVtkZXN0X3ZjcHVf aWRdKTsKIAogICAgICAgICAvKiBVc2UgaW50ZXJydXB0IHBvc3RpbmcgaWYgaXQgaXMgc3VwcG9y dGVkLiAqLwotICAgICAgICBpZiAoIGlvbW11X2ludHBvc3QgKQorICAgICAgICBpZiAoIGlvbW11 X2ludHBvc3QgJiYgIWlyICkKICAgICAgICAgICAgIHBpX3VwZGF0ZV9pcnRlKHZjcHUgPyAmdmNw dS0+YXJjaC5odm1fdm14LnBpX2Rlc2MgOiBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW5mbywgcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5ndmVjKTsKIApAQCAtNjI3LDYgKzcxOSw3 IEBAIGludCBwdF9pcnFfZGVzdHJveV9iaW5kKAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwog ICAgIGNhc2UgUFRfSVJRX1RZUEVfTVNJOgorICAgIGNhc2UgUFRfSVJRX1RZUEVfTVNJX0lSOgog ICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7 CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9w dWJsaWMvZG9tY3RsLmgKaW5kZXggNGIxMGYyNi4uMWFkZjAzMiAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvcHVibGljL2RvbWN0bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaApA QCAtNTU1LDYgKzU1NSw3IEBAIHR5cGVkZWYgZW51bSBwdF9pcnFfdHlwZV9lIHsKICAgICBQVF9J UlFfVFlQRV9NU0ksCiAgICAgUFRfSVJRX1RZUEVfTVNJX1RSQU5TTEFURSwKICAgICBQVF9JUlFf VFlQRV9TUEksICAgIC8qIEFSTTogdmFsaWQgcmFuZ2UgMzItMTAxOSAqLworICAgIFBUX0lSUV9U WVBFX01TSV9JUiwKIH0gcHRfaXJxX3R5cGVfdDsKIHN0cnVjdCB4ZW5fZG9tY3RsX2JpbmRfcHRf aXJxIHsKICAgICB1aW50MzJfdCBtYWNoaW5lX2lycTsKQEAgLTU3NSw2ICs1NzYsMTIgQEAgc3Ry dWN0IHhlbl9kb21jdGxfYmluZF9wdF9pcnEgewogICAgICAgICAgICAgdWludDY0X2FsaWduZWRf dCBndGFibGU7CiAgICAgICAgIH0gbXNpOwogICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAg dWludDMyX3Qgc291cmNlX2lkOworICAgICAgICAgICAgdWludDMyX3QgZGF0YTsKKyAgICAgICAg ICAgIHVpbnQ2NF90IGFkZHI7CisgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IGd0YWJsZTsK KyAgICAgICAgfSBtc2lfaXI7CisgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICB1aW50MTZf dCBzcGk7CiAgICAgICAgIH0gc3BpOwogICAgIH0gdTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3hlbi9odm0vaXJxLmggYi94ZW4vaW5jbHVkZS94ZW4vaHZtL2lycS5oCmluZGV4IDVlNzM2Zjgu Ljg4NGUwOTIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9odm0vaXJxLmgKKysrIGIveGVu L2luY2x1ZGUveGVuL2h2bS9pcnEuaApAQCAtNDEsNiArNDEsNyBAQCBzdHJ1Y3QgZGV2X2ludHhf Z3NpX2xpbmsgewogI2RlZmluZSBfSFZNX0lSUV9EUENJX0dVRVNUX1BDSV9TSElGVCAgICAgICAg ICAgNAogI2RlZmluZSBfSFZNX0lSUV9EUENJX0dVRVNUX01TSV9TSElGVCAgICAgICAgICAgNQog I2RlZmluZSBfSFZNX0lSUV9EUENJX0lERU5USVRZX0dTSV9TSElGVCAgICAgICAgNgorI2RlZmlu ZSBfSFZNX0lSUV9EUENJX0dVRVNUX01TSV9JUl9TSElGVCAgICAgICAgNyAKICNkZWZpbmUgX0hW TV9JUlFfRFBDSV9UUkFOU0xBVEVfU0hJRlQgICAgICAgICAgMTUKICNkZWZpbmUgSFZNX0lSUV9E UENJX01BQ0hfUENJICAgICAgICAoMSA8PCBfSFZNX0lSUV9EUENJX01BQ0hfUENJX1NISUZUKQog I2RlZmluZSBIVk1fSVJRX0RQQ0lfTUFDSF9NU0kgICAgICAgICgxIDw8IF9IVk1fSVJRX0RQQ0lf TUFDSF9NU0lfU0hJRlQpCkBAIC00OSw2ICs1MCw3IEBAIHN0cnVjdCBkZXZfaW50eF9nc2lfbGlu ayB7CiAjZGVmaW5lIEhWTV9JUlFfRFBDSV9HVUVTVF9QQ0kgICAgICAgKDEgPDwgX0hWTV9JUlFf RFBDSV9HVUVTVF9QQ0lfU0hJRlQpCiAjZGVmaW5lIEhWTV9JUlFfRFBDSV9HVUVTVF9NU0kgICAg ICAgKDEgPDwgX0hWTV9JUlFfRFBDSV9HVUVTVF9NU0lfU0hJRlQpCiAjZGVmaW5lIEhWTV9JUlFf RFBDSV9JREVOVElUWV9HU0kgICAgKDEgPDwgX0hWTV9JUlFfRFBDSV9JREVOVElUWV9HU0lfU0hJ RlQpCisjZGVmaW5lIEhWTV9JUlFfRFBDSV9HVUVTVF9NU0lfSVIgICAgKDEgPDwgX0hWTV9JUlFf RFBDSV9HVUVTVF9NU0lfSVJfU0hJRlQpCiAjZGVmaW5lIEhWTV9JUlFfRFBDSV9UUkFOU0xBVEUg ICAgICAgKDEgPDwgX0hWTV9JUlFfRFBDSV9UUkFOU0xBVEVfU0hJRlQpCiAKICNkZWZpbmUgVk1T SV9ERVNUX0lEX01BU0sgMHhmZgpAQCAtNjcsNiArNjksMTEgQEAgc3RydWN0IGh2bV9nbXNpX2lu Zm8gewogICAgICAgICAgICAgdWludDMyX3QgZ3ZlYzsKICAgICAgICAgICAgIHVpbnQzMl90IGdm bGFnczsKICAgICAgICAgfSBsZWdhY3k7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1 aW50MzJfdCBzb3VyY2VfaWQ7CisgICAgICAgICAgICB1aW50MzJfdCBkYXRhOworICAgICAgICAg ICAgdWludDY0X3QgYWRkcjsKKyAgICAgICAgfSBpbnRyZW1hcDsKICAgICB9OwogICAgIGludCBk ZXN0X3ZjcHVfaWQ7IC8qIC0xIDptdWx0aS1kZXN0LCBub24tbmVnYXRpdmU6IGRlc3RfdmNwdV9p ZCAqLwogICAgIGJvb2wgcG9zdGVkOyAvKiBkaXJlY3RseSBkZWxpdmVyIHRvIGd1ZXN0IHZpYSBW VC1kIFBJPyAqLwotLSAKMS44LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=