From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [RFC PATCH V2 21/26] Tools/libxc: Add a new interface to bind remapping format msi with pirq Date: Thu, 18 May 2017 01:34:51 -0400 Message-ID: <1495085696-10819-22-git-send-email-tianyu.lan@intel.com> References: <1495085696-10819-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: <1495085696-10819-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, jbeulich@suse.com, Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KCkludHJvZHVjZSBhIG5ldyBiaW5k aW5nIHJlbGF0aW9uc2hpcCBhbmQgcHJvdmlkZSBhIG5ldyBpbnRlcmZhY2UgdG8KbWFuYWdlIHRo ZSBuZXcgcmVsYXRpb25zaGlwLgoKU2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTGFuIFRpYW55dSA8dGlhbnl1LmxhbkBpbnRlbC5jb20+ Ci0tLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggfCAgMTcgKysrKysrCiB0b29scy9s aWJ4Yy94Y19kb21haW4uYyAgICAgICB8ICA1NSArKysrKysrKysrKysrKysrKwogeGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvaW8uYyAgfCAxMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggICB8ICAgNyArKysKIHhl bi9pbmNsdWRlL3hlbi9odm0vaXJxLmggICAgIHwgICA3ICsrKwogNSBmaWxlcyBjaGFuZ2VkLCAy MDMgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRl eCA2YzgxMTBjLi40NjVkYzViIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0 cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMTcwOSw2ICsxNzA5 LDE1IEBAIGludCB4Y19kb21haW5faW9wb3J0X21hcHBpbmcoeGNfaW50ZXJmYWNlICp4Y2gsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5yX3BvcnRzLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBhZGRfbWFwcGluZyk7CiAKK2ludCB4Y19kb21h aW5fdXBkYXRlX21zaV9pcnFfcmVtYXBwaW5nKAorICAgIHhjX2ludGVyZmFjZSAqeGNoLAorICAg IHVpbnQzMl90IGRvbWlkLAorICAgIHVpbnQzMl90IHBpcnEsCisgICAgdWludDMyX3Qgc291cmNl X2lkLAorICAgIHVpbnQzMl90IGRhdGEsCisgICAgdWludDY0X3QgYWRkciwKKyAgICB1aW50NjRf dCBndGFibGUpOworCiBpbnQgeGNfZG9tYWluX3VwZGF0ZV9tc2lfaXJxKAogICAgIHhjX2ludGVy ZmFjZSAqeGNoLAogICAgIHVpbnQzMl90IGRvbWlkLApAQCAtMTcyMyw2ICsxNzMyLDE0IEBAIGlu dCB4Y19kb21haW5fdW5iaW5kX21zaV9pcnEoeGNfaW50ZXJmYWNlICp4Y2gsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHBpcnEsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90IGdmbGFncyk7CiAKK2ludCB4Y19kb21haW5fdW5iaW5kX21zaV9pcnFf cmVtYXBwaW5nKAorICAgIHhjX2ludGVyZmFjZSAqeGNoLAorICAgIHVpbnQzMl90IGRvbWlkLAor ICAgIHVpbnQzMl90IHBpcnEsCisgICAgdWludDMyX3Qgc291cmNlX2lkLAorICAgIHVpbnQzMl90 IGRhdGEsCisgICAgdWludDY0X3QgYWRkcik7CisKIGludCB4Y19kb21haW5fYmluZF9wdF9pcnEo eGNfaW50ZXJmYWNlICp4Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRv bWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IG1hY2hpbmVfaXJxLApkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfZG9tYWluLmMgYi90b29scy9saWJ4Yy94Y19kb21haW4u YwppbmRleCAwMDkwOWFkNC4uMWYxNzRjMSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9t YWluLmMKKysrIGIvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKQEAgLTE2NTIsOCArMTY1MiwzNSBA QCBpbnQgeGNfZGVhc3NpZ25fZHRfZGV2aWNlKAogICAgIHJldHVybiByYzsKIH0KIAoraW50IHhj X2RvbWFpbl91cGRhdGVfbXNpX2lycV9yZW1hcHBpbmcoCisgICAgeGNfaW50ZXJmYWNlICp4Y2gs CisgICAgdWludDMyX3QgZG9taWQsCisgICAgdWludDMyX3QgcGlycSwKKyAgICB1aW50MzJfdCBz b3VyY2VfaWQsCisgICAgdWludDMyX3QgZGF0YSwKKyAgICB1aW50NjRfdCBhZGRyLAorICAgIHVp bnQ2NF90IGd0YWJsZSkKK3sKKyAgICBpbnQgcmM7CisgICAgeGVuX2RvbWN0bF9iaW5kX3B0X2ly cV90ICpiaW5kOwogCisgICAgREVDTEFSRV9ET01DVEw7CiAKKyAgICBkb21jdGwuY21kID0gWEVO X0RPTUNUTF9iaW5kX3B0X2lycTsKKyAgICBkb21jdGwuZG9tYWluID0gKGRvbWlkX3QpZG9taWQ7 CisKKyAgICBiaW5kID0gJihkb21jdGwudS5iaW5kX3B0X2lycSk7CisgICAgYmluZC0+aHZtX2Rv bWlkID0gZG9taWQ7CisgICAgYmluZC0+aXJxX3R5cGUgPSBQVF9JUlFfVFlQRV9NU0lfSVI7Cisg ICAgYmluZC0+bWFjaGluZV9pcnEgPSBwaXJxOworICAgIGJpbmQtPnUubXNpX2lyLnNvdXJjZV9p ZCA9IHNvdXJjZV9pZDsKKyAgICBiaW5kLT51Lm1zaV9pci5kYXRhID0gZGF0YTsKKyAgICBiaW5k LT51Lm1zaV9pci5hZGRyID0gYWRkcjsKKyAgICBiaW5kLT51Lm1zaV9pci5ndGFibGUgPSBndGFi bGU7CisKKyAgICByYyA9IGRvX2RvbWN0bCh4Y2gsICZkb21jdGwpOworICAgIHJldHVybiByYzsK K30KIAogaW50IHhjX2RvbWFpbl91cGRhdGVfbXNpX2lycSgKICAgICB4Y19pbnRlcmZhY2UgKnhj aCwKQEAgLTE2ODMsNiArMTcxMCwzNCBAQCBpbnQgeGNfZG9tYWluX3VwZGF0ZV9tc2lfaXJxKAog ICAgIHJldHVybiByYzsKIH0KIAoraW50IHhjX2RvbWFpbl91bmJpbmRfbXNpX2lycV9yZW1hcHBp bmcoCisgICAgeGNfaW50ZXJmYWNlICp4Y2gsCisgICAgdWludDMyX3QgZG9taWQsCisgICAgdWlu dDMyX3QgcGlycSwKKyAgICB1aW50MzJfdCBzb3VyY2VfaWQsCisgICAgdWludDMyX3QgZGF0YSwK KyAgICB1aW50NjRfdCBhZGRyKQoreworICAgIGludCByYzsKKyAgICB4ZW5fZG9tY3RsX2JpbmRf cHRfaXJxX3QgKmJpbmQ7CisKKyAgICBERUNMQVJFX0RPTUNUTDsKKworICAgIGRvbWN0bC5jbWQg PSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE7CisgICAgZG9tY3RsLmRvbWFpbiA9IChkb21pZF90 KWRvbWlkOworCisgICAgYmluZCA9ICYoZG9tY3RsLnUuYmluZF9wdF9pcnEpOworICAgIGJpbmQt Pmh2bV9kb21pZCA9IGRvbWlkOworICAgIGJpbmQtPmlycV90eXBlID0gUFRfSVJRX1RZUEVfTVNJ X0lSOworICAgIGJpbmQtPm1hY2hpbmVfaXJxID0gcGlycTsKKyAgICBiaW5kLT51Lm1zaV9pci5z b3VyY2VfaWQgPSBzb3VyY2VfaWQ7CisgICAgYmluZC0+dS5tc2lfaXIuZGF0YSA9IGRhdGE7Cisg ICAgYmluZC0+dS5tc2lfaXIuYWRkciA9IGFkZHI7CisKKyAgICByYyA9IGRvX2RvbWN0bCh4Y2gs ICZkb21jdGwpOworICAgIHJldHVybiByYzsKK30KKwogaW50IHhjX2RvbWFpbl91bmJpbmRfbXNp X2lycSgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwKICAgICB1aW50MzJfdCBkb21pZCwKZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9pby5jCmluZGV4IDIxNThhMTEuLmI0YjZlOWMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2lvLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW8uYwpAQCAt MjU5LDYgKzI1OSw5NCBAQCBzdGF0aWMgc3RydWN0IHZjcHUgKnZlY3Rvcl9oYXNoaW5nX2Rlc3Qo Y29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKICAgICByZXR1cm4gZGVzdDsKIH0KIAorc3RhdGljIGlu bGluZSB2b2lkIHNldF9odm1fZ21zaV9pbmZvKHN0cnVjdCBodm1fZ21zaV9pbmZvICptc2ksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX2RvbWN0bF9iaW5kX3B0X2ly cV90ICpwdF9pcnFfYmluZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgaXJxX3R5cGUpCit7CisgICAgaWYgKCBpcnFfdHlwZSA9PSBQVF9JUlFfVFlQRV9NU0kgKQor ICAgIHsKKyAgICAgICAgbXNpLT5sZWdhY3kuZ3ZlYyA9IHB0X2lycV9iaW5kLT51Lm1zaS5ndmVj OworICAgICAgICBtc2ktPmxlZ2FjeS5nZmxhZ3MgPSBwdF9pcnFfYmluZC0+dS5tc2kuZ2ZsYWdz OworICAgIH0KKyAgICBlbHNlIGlmICggaXJxX3R5cGUgPT0gUFRfSVJRX1RZUEVfTVNJX0lSICkK KyAgICB7CisgICAgICAgIG1zaS0+aW50cmVtYXAuc291cmNlX2lkID0gcHRfaXJxX2JpbmQtPnUu bXNpX2lyLnNvdXJjZV9pZDsKKyAgICAgICAgbXNpLT5pbnRyZW1hcC5kYXRhID0gcHRfaXJxX2Jp bmQtPnUubXNpX2lyLmRhdGE7CisgICAgICAgIG1zaS0+aW50cmVtYXAuYWRkciA9IHB0X2lycV9i aW5kLT51Lm1zaV9pci5hZGRyOworICAgIH0KKyAgICBlbHNlCisgICAgICAgIEJVRygpOworfQor CitzdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfaHZtX2dtc2lfaW5mbyhzdHJ1Y3QgaHZtX2dtc2lf aW5mbyAqbXNpLCBpbnQgaXJxX3R5cGUpCit7CisgICAgaWYgKCBpcnFfdHlwZSA9PSBQVF9JUlFf VFlQRV9NU0kgKQorICAgIHsKKyAgICAgICAgbXNpLT5sZWdhY3kuZ3ZlYyA9IDA7CisgICAgICAg IG1zaS0+bGVnYWN5LmdmbGFncyA9IDA7CisgICAgfQorICAgIGVsc2UgaWYgKCBpcnFfdHlwZSA9 PSBQVF9JUlFfVFlQRV9NU0lfSVIgKQorICAgIHsKKyAgICAgICAgbXNpLT5pbnRyZW1hcC5zb3Vy Y2VfaWQgPSAwOworICAgICAgICBtc2ktPmludHJlbWFwLmRhdGEgPSAwOworICAgICAgICBtc2kt PmludHJlbWFwLmFkZHIgPSAwOworICAgIH0KKyAgICBlbHNlCisgICAgICAgIEJVRygpOworfQor CitzdGF0aWMgaW5saW5lIGJvb2wgaHZtX2dtc2lfaW5mb19uZWVkX3VwZGF0ZShzdHJ1Y3QgaHZt X2dtc2lfaW5mbyAqbXNpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxX3QgKnB0X2lycV9iaW5kLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXJxX3R5cGUpCit7CisgICAgaWYgKCBpcnFf dHlwZSA9PSBQVF9JUlFfVFlQRV9NU0kgKQorICAgICAgICByZXR1cm4gKChtc2ktPmxlZ2FjeS5n dmVjICE9IHB0X2lycV9iaW5kLT51Lm1zaS5ndmVjKSB8fAorICAgICAgICAgICAgICAgIChtc2kt PmxlZ2FjeS5nZmxhZ3MgIT0gcHRfaXJxX2JpbmQtPnUubXNpLmdmbGFncykpOworICAgIGVsc2Ug aWYgKCBpcnFfdHlwZSA9PSBQVF9JUlFfVFlQRV9NU0lfSVIgKQorICAgICAgICByZXR1cm4gKCht c2ktPmludHJlbWFwLnNvdXJjZV9pZCAhPSBwdF9pcnFfYmluZC0+dS5tc2lfaXIuc291cmNlX2lk KSB8fAorICAgICAgICAgICAgICAgIChtc2ktPmludHJlbWFwLmRhdGEgIT0gcHRfaXJxX2JpbmQt PnUubXNpX2lyLmRhdGEpIHx8CisgICAgICAgICAgICAgICAgKG1zaS0+aW50cmVtYXAuYWRkciAh PSBwdF9pcnFfYmluZC0+dS5tc2lfaXIuYWRkcikpOworICAgIEJVRygpOworICAgIHJldHVybiAw OworfQorCitzdGF0aWMgaW50IHBpcnFfZHBjaV8yX21zaV9hdHRyKHN0cnVjdCBkb21haW4gKmQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBodm1fcGlycV9kcGNpICpw aXJxX2RwY2ksIHVpbnQ4X3QgKmd2ZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQ4X3QgKmRlc3QsIHVpbnQ4X3QgKmRtLCB1aW50OF90ICpkbG0pCit7CisgICAgaW50IHJj ID0gMDsKKworICAgIGlmICggcGlycV9kcGNpLT5mbGFncyAmIEhWTV9JUlFfRFBDSV9HVUVTVF9N U0kgKQorICAgIHsKKyAgICAgICAgKmd2ZWMgPSBwaXJxX2RwY2ktPmdtc2kubGVnYWN5Lmd2ZWM7 CisgICAgICAgICpkZXN0ID0gcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MgJiBWTVNJX0RF U1RfSURfTUFTSzsKKyAgICAgICAgKmRtID0gISEocGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxh Z3MgJiBWTVNJX0RNX01BU0spOworICAgICAgICAqZGxtID0gKHBpcnFfZHBjaS0+Z21zaS5sZWdh Y3kuZ2ZsYWdzICYgVk1TSV9ERUxJVl9NQVNLKSA+PgorICAgICAgICAgICAgICAgIEdGTEFHU19T SElGVF9ERUxJVl9NT0RFOworICAgIH0KKyAgICBlbHNlIGlmICggcGlycV9kcGNpLT5mbGFncyAm IEhWTV9JUlFfRFBDSV9HVUVTVF9NU0lfSVIgKQorICAgIHsKKyAgICAgICAgc3RydWN0IGlycV9y ZW1hcHBpbmdfcmVxdWVzdCByZXF1ZXN0OworICAgICAgICBzdHJ1Y3QgaXJxX3JlbWFwcGluZ19p bmZvIGlycV9pbmZvOworCisgICAgICAgIGlycV9yZXF1ZXN0X21zaV9maWxsKCZyZXF1ZXN0LCBw aXJxX2RwY2ktPmdtc2kuaW50cmVtYXAuc291cmNlX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwaXJxX2RwY2ktPmdtc2kuaW50cmVtYXAuYWRkciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGlycV9kcGNpLT5nbXNpLmludHJlbWFwLmRhdGEpOworICAgICAgICAvKiBD dXJyZW50bHksIG9ubHkgdmlvbW11IDAgaXMgc3VwcG9ydGVkICovCisgICAgICAgIHJjID0gdmlv bW11X2dldF9pcnFfaW5mbyhkLCAwLCAmcmVxdWVzdCwgJmlycV9pbmZvKTsKKyAgICAgICAgaWYg KCAhcmMgKQorICAgICAgICB7CisgICAgICAgICAgICAqZ3ZlYyA9IGlycV9pbmZvLnZlY3RvcjsK KyAgICAgICAgICAgICpkZXN0ID0gaXJxX2luZm8uZGVzdDsKKyAgICAgICAgICAgICpkbSA9IGly cV9pbmZvLmRlc3RfbW9kZTsKKyAgICAgICAgICAgICpkbG0gPSBpcnFfaW5mby5kZWxpdmVyeV9t b2RlOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgQlVHKCk7CisgICAgcmV0 dXJuIHJjOworfQorCiBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5kKAogICAgIHN0cnVjdCBkb21haW4g KmQsIHhlbl9kb21jdGxfYmluZF9wdF9pcnFfdCAqcHRfaXJxX2JpbmQpCiB7CkBAIC0zMTYsMTcg KzQwNCwyMiBAQCBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5kKAogICAgIHN3aXRjaCAoIHB0X2lycV9i aW5kLT5pcnFfdHlwZSApCiAgICAgewogICAgIGNhc2UgUFRfSVJRX1RZUEVfTVNJOgorICAgIGNh c2UgUFRfSVJRX1RZUEVfTVNJX0lSOgogICAgIHsKLSAgICAgICAgdWludDhfdCBkZXN0LCBkZXN0 X21vZGUsIGRlbGl2ZXJ5X21vZGU7CisgICAgICAgIHVpbnQ4X3QgZGVzdCA9IDAsIGRlc3RfbW9k ZSA9IDAsIGRlbGl2ZXJ5X21vZGUgPSAwLCBndmVjOwogICAgICAgICBpbnQgZGVzdF92Y3B1X2lk OwogICAgICAgICBjb25zdCBzdHJ1Y3QgdmNwdSAqdmNwdTsKKyAgICAgICAgaW50IGlycV90eXBl ID0gcHRfaXJxX2JpbmQtPmlycV90eXBlOworICAgICAgICBib29sIGlyID0gKHB0X2lycV9iaW5k LT5pcnFfdHlwZSA9PSBQVF9JUlFfVFlQRV9NU0lfSVIpOworICAgICAgICB1aW50NjRfdCBndGFi bGUgPSBpciA/IHB0X2lycV9iaW5kLT51Lm1zaV9pci5ndGFibGUgOgorICAgICAgICAgICAgICAg ICAgICAgICAgICBwdF9pcnFfYmluZC0+dS5tc2kuZ3RhYmxlOwogCiAgICAgICAgIGlmICggIShw aXJxX2RwY2ktPmZsYWdzICYgSFZNX0lSUV9EUENJX01BUFBFRCkgKQogICAgICAgICB7CiAgICAg ICAgICAgICBwaXJxX2RwY2ktPmZsYWdzID0gSFZNX0lSUV9EUENJX01BUFBFRCB8IEhWTV9JUlFf RFBDSV9NQUNIX01TSSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFZNX0lSUV9E UENJX0dVRVNUX01TSTsKLSAgICAgICAgICAgIHBpcnFfZHBjaS0+Z21zaS5sZWdhY3kuZ3ZlYyA9 IHB0X2lycV9iaW5kLT51Lm1zaS5ndmVjOwotICAgICAgICAgICAgcGlycV9kcGNpLT5nbXNpLmxl Z2FjeS5nZmxhZ3MgPSBwdF9pcnFfYmluZC0+dS5tc2kuZ2ZsYWdzOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChpciA/IEhWTV9JUlFfRFBDSV9HVUVTVF9NU0lfSVIgOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBIVk1fSVJRX0RQQ0lfR1VFU1RfTVNJKTsKKyAgICAg ICAgICAgIHNldF9odm1fZ21zaV9pbmZvKCZwaXJxX2RwY2ktPmdtc2ksIHB0X2lycV9iaW5kLCBp cnFfdHlwZSk7CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICogJ3B0X2lycV9jcmVhdGVf YmluZCcgY2FuIGJlIGNhbGxlZCBhZnRlciAncHRfaXJxX2Rlc3Ryb3lfYmluZCcuCiAgICAgICAg ICAgICAgKiBUaGUgJ3BpcnFfY2xlYW51cF9jaGVjaycgd2hpY2ggd291bGQgZnJlZSB0aGUgc3Ry dWN0dXJlIGlzIG9ubHkKQEAgLTM0MSw5ICs0MzQsOSBAQCBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5k KAogICAgICAgICAgICAgcGlycV9kcGNpLT5kb20gPSBkOwogICAgICAgICAgICAgLyogYmluZCBh ZnRlciBodm1faXJxX2RwY2kgaXMgc2V0dXAgdG8gYXZvaWQgcmFjZSB3aXRoIGlycSBoYW5kbGVy Ki8KICAgICAgICAgICAgIHJjID0gcGlycV9ndWVzdF9iaW5kKGQtPnZjcHVbMF0sIGluZm8sIDAp OwotICAgICAgICAgICAgaWYgKCByYyA9PSAwICYmIHB0X2lycV9iaW5kLT51Lm1zaS5ndGFibGUg KQorICAgICAgICAgICAgaWYgKCByYyA9PSAwICYmIGd0YWJsZSApCiAgICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgICAgcmMgPSBtc2l4dGJsX3B0X3JlZ2lzdGVyKGQsIGluZm8sIHB0X2lycV9i aW5kLT51Lm1zaS5ndGFibGUpOworICAgICAgICAgICAgICAgIHJjID0gbXNpeHRibF9wdF9yZWdp c3RlcihkLCBpbmZvLCBndGFibGUpOwogICAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMp ICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHBpcnFfZ3Vlc3RfdW5i aW5kKGQsIGluZm8pOwpAQCAtMzU4LDggKzQ1MSw3IEBAIGludCBwdF9pcnFfY3JlYXRlX2JpbmQo CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSApCiAgICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MgPSAw OwotICAgICAgICAgICAgICAgIHBpcnFfZHBjaS0+Z21zaS5sZWdhY3kuZ3ZlYyA9IDA7CisgICAg ICAgICAgICAgICAgY2xlYXJfaHZtX2dtc2lfaW5mbygmcGlycV9kcGNpLT5nbXNpLCBpcnFfdHlw ZSk7CiAgICAgICAgICAgICAgICAgcGlycV9kcGNpLT5kb20gPSBOVUxMOwogICAgICAgICAgICAg ICAgIHBpcnFfZHBjaS0+ZmxhZ3MgPSAwOwogICAgICAgICAgICAgICAgIHBpcnFfY2xlYW51cF9j aGVjayhpbmZvLCBkKTsKQEAgLTM2OSw3ICs0NjEsOCBAQCBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5k KAogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewotICAgICAgICAgICAgdWludDMy X3QgbWFzayA9IEhWTV9JUlFfRFBDSV9NQUNIX01TSSB8IEhWTV9JUlFfRFBDSV9HVUVTVF9NU0k7 CisgICAgICAgICAgICB1aW50MzJfdCBtYXNrID0gSFZNX0lSUV9EUENJX01BQ0hfTVNJIHwKKyAg ICAgICAgICAgICAgICAgICAgIChpciA/IEhWTV9JUlFfRFBDSV9HVUVTVF9NU0lfSVIgOiBIVk1f SVJRX0RQQ0lfR1VFU1RfTVNJKTsKIAogICAgICAgICAgICAgaWYgKCAocGlycV9kcGNpLT5mbGFn cyAmIG1hc2spICE9IG1hc2sgKQogICAgICAgICAgICAgewpAQCAtMzc4LDI5ICs0NzEsMzEgQEAg aW50IHB0X2lycV9jcmVhdGVfYmluZCgKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLyog SWYgcGlycSBpcyBhbHJlYWR5IG1hcHBlZCBhcyB2bXNpLCB1cGRhdGUgZ3Vlc3QgZGF0YS9hZGRy LiAqLwotICAgICAgICAgICAgaWYgKCBwaXJxX2RwY2ktPmdtc2kubGVnYWN5Lmd2ZWMgIT0gcHRf aXJxX2JpbmQtPnUubXNpLmd2ZWMgfHwKLSAgICAgICAgICAgICAgICAgcGlycV9kcGNpLT5nbXNp LmxlZ2FjeS5nZmxhZ3MgIT0gcHRfaXJxX2JpbmQtPnUubXNpLmdmbGFncyApCisgICAgICAgICAg ICBpZiAoIGh2bV9nbXNpX2luZm9fbmVlZF91cGRhdGUoJnBpcnFfZHBjaS0+Z21zaSwgcHRfaXJx X2JpbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXJxX3R5 cGUpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAvKiBEaXJlY3RseSBjbGVhciBw ZW5kaW5nIEVPSXMgYmVmb3JlIGVuYWJsaW5nIG5ldyBNU0kgaW5mby4gKi8KICAgICAgICAgICAg ICAgICBwaXJxX2d1ZXN0X2VvaShpbmZvKTsKIAotICAgICAgICAgICAgICAgIHBpcnFfZHBjaS0+ Z21zaS5sZWdhY3kuZ3ZlYyA9IHB0X2lycV9iaW5kLT51Lm1zaS5ndmVjOwotICAgICAgICAgICAg ICAgIHBpcnFfZHBjaS0+Z21zaS5sZWdhY3kuZ2ZsYWdzID0gcHRfaXJxX2JpbmQtPnUubXNpLmdm bGFnczsKKyAgICAgICAgICAgICAgICBzZXRfaHZtX2dtc2lfaW5mbygmcGlycV9kcGNpLT5nbXNp LCBwdF9pcnFfYmluZCwgaXJxX3R5cGUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg ICAgIC8qIENhbGN1bGF0ZSBkZXN0X3ZjcHVfaWQgZm9yIE1TSS10eXBlIHBpcnEgbWlncmF0aW9u LiAqLwotICAgICAgICBkZXN0ID0gcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MgJiBWTVNJ X0RFU1RfSURfTUFTSzsKLSAgICAgICAgZGVzdF9tb2RlID0gISEocGlycV9kcGNpLT5nbXNpLmxl Z2FjeS5nZmxhZ3MgJiBWTVNJX0RNX01BU0spOwotICAgICAgICBkZWxpdmVyeV9tb2RlID0gKHBp cnFfZHBjaS0+Z21zaS5sZWdhY3kuZ2ZsYWdzICYgVk1TSV9ERUxJVl9NQVNLKSA+PgotICAgICAg ICAgICAgICAgICAgICAgICAgIEdGTEFHU19TSElGVF9ERUxJVl9NT0RFOwotCi0gICAgICAgIGRl c3RfdmNwdV9pZCA9IGh2bV9naXJxX2Rlc3RfMl92Y3B1X2lkKGQsIGRlc3QsIGRlc3RfbW9kZSk7 CisgICAgICAgIHJjID0gcGlycV9kcGNpXzJfbXNpX2F0dHIoZCwgcGlycV9kcGNpLCAmZ3ZlYywg JmRlc3QsICZkZXN0X21vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRl bGl2ZXJ5X21vZGUpOworICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSApCisgICAgICAgIHsKKyAg ICAgICAgICAgIHNwaW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKKyAgICAgICAgICAgIHJldHVy biAtRUZBVUxUOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlc3RfdmNw dV9pZCA9IGh2bV9naXJxX2Rlc3RfMl92Y3B1X2lkKGQsIGRlc3QsIGRlc3RfbW9kZSk7CiAgICAg ICAgIHBpcnFfZHBjaS0+Z21zaS5kZXN0X3ZjcHVfaWQgPSBkZXN0X3ZjcHVfaWQ7CiAgICAgICAg IHNwaW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKIAogICAgICAgICBwaXJxX2RwY2ktPmdtc2ku cG9zdGVkID0gZmFsc2U7CiAgICAgICAgIHZjcHUgPSAoZGVzdF92Y3B1X2lkID49IDApID8gZC0+ dmNwdVtkZXN0X3ZjcHVfaWRdIDogTlVMTDsKLSAgICAgICAgaWYgKCBpb21tdV9pbnRwb3N0ICkK KyAgICAgICAgaWYgKCBpb21tdV9pbnRwb3N0ICYmICFpciApCiAgICAgICAgIHsKICAgICAgICAg ICAgIGlmICggZGVsaXZlcnlfbW9kZSA9PSBkZXN0X0xvd2VzdFByaW8gKQogICAgICAgICAgICAg ICAgIHZjcHUgPSB2ZWN0b3JfaGFzaGluZ19kZXN0KGQsIGRlc3QsIGRlc3RfbW9kZSwKQEAgLTQx Miw3ICs1MDcsNyBAQCBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5kKAogICAgICAgICAgICAgaHZtX21p Z3JhdGVfcGlycXMoZC0+dmNwdVtkZXN0X3ZjcHVfaWRdKTsKIAogICAgICAgICAvKiBVc2UgaW50 ZXJydXB0IHBvc3RpbmcgaWYgaXQgaXMgc3VwcG9ydGVkLiAqLwotICAgICAgICBpZiAoIGlvbW11 X2ludHBvc3QgKQorICAgICAgICBpZiAoIGlvbW11X2ludHBvc3QgJiYgIWlyICkKICAgICAgICAg ICAgIHBpX3VwZGF0ZV9pcnRlKHZjcHUgPyAmdmNwdS0+YXJjaC5odm1fdm14LnBpX2Rlc2MgOiBO VUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mbywgcGlycV9kcGNpLT5nbXNpLmxl Z2FjeS5ndmVjKTsKIApAQCAtNTQ1LDYgKzY0MCw3IEBAIGludCBwdF9pcnFfZGVzdHJveV9iaW5k KAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFRfSVJRX1RZUEVfTVNJOgor ICAgIGNhc2UgUFRfSVJRX1RZUEVfTVNJX0lSOgogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0 OgogICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9w dWJsaWMvZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKaW5kZXggZDQ5OWZj Ni4uNmZjMzU0NyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCisrKyBi L3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaApAQCAtNTU1LDYgKzU1NSw3IEBAIHR5cGVkZWYg ZW51bSBwdF9pcnFfdHlwZV9lIHsKICAgICBQVF9JUlFfVFlQRV9NU0ksCiAgICAgUFRfSVJRX1RZ UEVfTVNJX1RSQU5TTEFURSwKICAgICBQVF9JUlFfVFlQRV9TUEksICAgIC8qIEFSTTogdmFsaWQg cmFuZ2UgMzItMTAxOSAqLworICAgIFBUX0lSUV9UWVBFX01TSV9JUiwKIH0gcHRfaXJxX3R5cGVf dDsKIHN0cnVjdCB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxIHsKICAgICB1aW50MzJfdCBtYWNoaW5l X2lycTsKQEAgLTU3Niw2ICs1NzcsMTIgQEAgc3RydWN0IHhlbl9kb21jdGxfYmluZF9wdF9pcnEg ewogICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBndGFibGU7CiAgICAgICAgIH0gbXNpOwog ICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3Qgc291cmNlX2lkOworICAgICAg ICAgICAgdWludDMyX3QgZGF0YTsKKyAgICAgICAgICAgIHVpbnQ2NF90IGFkZHI7CisgICAgICAg ICAgICB1aW50NjRfYWxpZ25lZF90IGd0YWJsZTsKKyAgICAgICAgfSBtc2lfaXI7CisgICAgICAg IHN0cnVjdCB7CiAgICAgICAgICAgICB1aW50MTZfdCBzcGk7CiAgICAgICAgIH0gc3BpOwogICAg IH0gdTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9odm0vaXJxLmggYi94ZW4vaW5jbHVk ZS94ZW4vaHZtL2lycS5oCmluZGV4IDVmOGUyZjQuLjllOTM0NTkgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3hlbi9odm0vaXJxLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2h2bS9pcnEuaApAQCAt NDAsNiArNDAsNyBAQCBzdHJ1Y3QgZGV2X2ludHhfZ3NpX2xpbmsgewogI2RlZmluZSBfSFZNX0lS UV9EUENJX0VPSV9MQVRDSF9TSElGVCAgICAgICAgICAgMwogI2RlZmluZSBfSFZNX0lSUV9EUENJ X0dVRVNUX1BDSV9TSElGVCAgICAgICAgICAgNAogI2RlZmluZSBfSFZNX0lSUV9EUENJX0dVRVNU X01TSV9TSElGVCAgICAgICAgICAgNQorI2RlZmluZSBfSFZNX0lSUV9EUENJX0dVRVNUX01TSV9J Ul9TSElGVCAgICAgICAgNgogI2RlZmluZSBfSFZNX0lSUV9EUENJX1RSQU5TTEFURV9TSElGVCAg ICAgICAgICAxNQogI2RlZmluZSBIVk1fSVJRX0RQQ0lfTUFDSF9QQ0kgICAgICAgICgxIDw8IF9I Vk1fSVJRX0RQQ0lfTUFDSF9QQ0lfU0hJRlQpCiAjZGVmaW5lIEhWTV9JUlFfRFBDSV9NQUNIX01T SSAgICAgICAgKDEgPDwgX0hWTV9JUlFfRFBDSV9NQUNIX01TSV9TSElGVCkKQEAgLTQ3LDYgKzQ4 LDcgQEAgc3RydWN0IGRldl9pbnR4X2dzaV9saW5rIHsKICNkZWZpbmUgSFZNX0lSUV9EUENJX0VP SV9MQVRDSCAgICAgICAoMSA8PCBfSFZNX0lSUV9EUENJX0VPSV9MQVRDSF9TSElGVCkKICNkZWZp bmUgSFZNX0lSUV9EUENJX0dVRVNUX1BDSSAgICAgICAoMSA8PCBfSFZNX0lSUV9EUENJX0dVRVNU X1BDSV9TSElGVCkKICNkZWZpbmUgSFZNX0lSUV9EUENJX0dVRVNUX01TSSAgICAgICAoMSA8PCBf SFZNX0lSUV9EUENJX0dVRVNUX01TSV9TSElGVCkKKyNkZWZpbmUgSFZNX0lSUV9EUENJX0dVRVNU X01TSV9JUiAgICAoMSA8PCBfSFZNX0lSUV9EUENJX0dVRVNUX01TSV9JUl9TSElGVCkKICNkZWZp bmUgSFZNX0lSUV9EUENJX1RSQU5TTEFURSAgICAgICAoMSA8PCBfSFZNX0lSUV9EUENJX1RSQU5T TEFURV9TSElGVCkKIAogI2RlZmluZSBWTVNJX0RFU1RfSURfTUFTSyAweGZmCkBAIC02NSw2ICs2 NywxMSBAQCBzdHJ1Y3QgaHZtX2dtc2lfaW5mbyB7CiAgICAgICAgICAgICB1aW50MzJfdCBndmVj OwogICAgICAgICAgICAgdWludDMyX3QgZ2ZsYWdzOwogICAgICAgICB9IGxlZ2FjeTsKKyAgICAg ICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IHNvdXJjZV9pZDsKKyAgICAgICAgICAg IHVpbnQzMl90IGRhdGE7CisgICAgICAgICAgICB1aW50NjRfdCBhZGRyOworICAgICAgICB9IGlu dHJlbWFwOwogICAgIH07CiAgICAgaW50IGRlc3RfdmNwdV9pZDsgLyogLTEgOm11bHRpLWRlc3Qs IG5vbi1uZWdhdGl2ZTogZGVzdF92Y3B1X2lkICovCiAgICAgYm9vbCBwb3N0ZWQ7IC8qIGRpcmVj dGx5IGRlbGl2ZXIgdG8gZ3Vlc3QgdmlhIFZULWQgUEk/ICovCi0tIAoxLjguMy4xCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==