From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [PATCH V3 24/29] tools/libxc: Add a new interface to bind remapping format msi with pirq Date: Thu, 21 Sep 2017 23:02:05 -0400 Message-ID: <1506049330-11196-25-git-send-email-tianyu.lan@intel.com> References: <1506049330-11196-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: <1506049330-11196-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, sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, jbeulich@suse.com, roger.pau@citrix.com, Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KCldoZW4gZXhwb3NpbmcgdklPTU1V ICh2dnRkKSB0byBndWVzdCwgZ3Vlc3QgY2FuIGNvbmZpZ3VyZSB0aGUgbXNpIHRvCnJlbWFwcGlu ZyBmb3JtYXQuIEZvciBwYXNzLXRocm91Z2ggZGV2aWNlLCB0aGUgcGh5c2ljYWwgaW50ZXJydXB0 IG5vdwpjYW4gYmUgYm91bmQgd2l0aCByZW1hcHBpbmcgZm9ybWF0IG1zaS4gVGhpcyBwYXRjaCBp bnRyb2R1Y2UgYSBmbGFnLApIVk1fSVJRX0RQQ0lfR1VFU1RfUkVNQVBQRUQsIHdoaWNoIGluZGlj YXRlIGEgcGh5c2ljYWwgaW50ZXJydXB0IGlzCmJvdW5kIHdpdGggcmVtYXBwaW5nIGZvcm1hdCBn dWVzdCBpbnRlcnJ1cHQuIFRodXMsIHdlIGNhbiB1c2UKKEhWTV9JUlFfRFBDSV9HVUVTVF9SRU1B UFBFRCB8IEhWTV9JUlFfRFBDSV9HVUVTVF9NU0kpIHRvIHNob3cgdGhlIG5ldwpiaW5kaW5nIHR5 cGUuIEFsc28gcHJvdmlkZSBhbiBuZXcgaW50ZXJmYWNlIHRvIG1hbmFnZSB0aGUgbmV3IGJpbmRp bmcuCgpTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9AaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBMYW4gVGlhbnl1IDx0aWFueXUubGFuQGludGVsLmNvbT4KCi0tLQp2MzoKIC0gSW50 cm9kdWNlIGEgbmV3IGZsYWcgSFZNX0lSUV9EUENJX0dVRVNUX1JFTUFQUEVECiAtIFJlbW92ZSB0 aGUgZmxhZyBIVk1fSVJRX0RQQ0lfR1VFU1RfTVNJX0lSCi0tLQogdG9vbHMvbGlieGMvaW5jbHVk ZS94ZW5jdHJsLmggfCAgMTcgKysrKysKIHRvb2xzL2xpYnhjL3hjX2RvbWFpbi5jICAgICAgIHwg IDUzICsrKysrKysrKysrKysrKwogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW8uYyAgfCAxNTUg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiB4ZW4vaW5jbHVkZS9h c20teDg2L2h2bS9pcnEuaCB8ICAgNyArKwogeGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oICAg fCAgIDcgKysKIDUgZmlsZXMgY2hhbmdlZCwgMjE2IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMv bGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKaW5kZXggYmVkY2ExZi4uMWExNzk3NCAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMvaW5jbHVk ZS94ZW5jdHJsLmgKQEAgLTE3MjAsNiArMTcyMCwxNSBAQCBpbnQgeGNfZG9tYWluX2lvcG9ydF9t YXBwaW5nKHhjX2ludGVyZmFjZSAqeGNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50MzJfdCBucl9wb3J0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg YWRkX21hcHBpbmcpOwogCitpbnQgeGNfZG9tYWluX3VwZGF0ZV9tc2lfaXJxX3JlbWFwcGluZygK KyAgICB4Y19pbnRlcmZhY2UgKnhjaCwKKyAgICB1aW50MzJfdCBkb21pZCwKKyAgICB1aW50MzJf dCBwaXJxLAorICAgIHVpbnQzMl90IHNvdXJjZV9pZCwKKyAgICB1aW50MzJfdCBkYXRhLAorICAg IHVpbnQ2NF90IGFkZHIsCisgICAgdWludDY0X3QgZ3RhYmxlKTsKKwogaW50IHhjX2RvbWFpbl91 cGRhdGVfbXNpX2lycSgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwKICAgICB1aW50MzJfdCBkb21p ZCwKQEAgLTE3MzQsNiArMTc0MywxNCBAQCBpbnQgeGNfZG9tYWluX3VuYmluZF9tc2lfaXJxKHhj X2ludGVyZmFjZSAqeGNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBw aXJxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBnZmxhZ3MpOwogCitp bnQgeGNfZG9tYWluX3VuYmluZF9tc2lfaXJxX3JlbWFwcGluZygKKyAgICB4Y19pbnRlcmZhY2Ug KnhjaCwKKyAgICB1aW50MzJfdCBkb21pZCwKKyAgICB1aW50MzJfdCBwaXJxLAorICAgIHVpbnQz Ml90IHNvdXJjZV9pZCwKKyAgICB1aW50MzJfdCBkYXRhLAorICAgIHVpbnQ2NF90IGFkZHIpOwor CiBpbnQgeGNfZG9tYWluX2JpbmRfcHRfaXJxKHhjX2ludGVyZmFjZSAqeGNoLAogICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDhfdCBtYWNoaW5lX2lycSwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2RvbWFp bi5jIGIvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKaW5kZXggM2JhYjRlOC4uNGI2YTUxMCAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKKysrIGIvdG9vbHMvbGlieGMveGNfZG9t YWluLmMKQEAgLTE3MDIsOCArMTcwMiwzNCBAQCBpbnQgeGNfZGVhc3NpZ25fZHRfZGV2aWNlKAog ICAgIHJldHVybiByYzsKIH0KIAoraW50IHhjX2RvbWFpbl91cGRhdGVfbXNpX2lycV9yZW1hcHBp bmcoCisgICAgeGNfaW50ZXJmYWNlICp4Y2gsCisgICAgdWludDMyX3QgZG9taWQsCisgICAgdWlu dDMyX3QgcGlycSwKKyAgICB1aW50MzJfdCBzb3VyY2VfaWQsCisgICAgdWludDMyX3QgZGF0YSwK KyAgICB1aW50NjRfdCBhZGRyLAorICAgIHVpbnQ2NF90IGd0YWJsZSkKK3sKKyAgICBpbnQgcmM7 CisgICAgeGVuX2RvbWN0bF9iaW5kX3B0X2lycV90ICpiaW5kOworCisgICAgREVDTEFSRV9ET01D VEw7CiAKKyAgICBkb21jdGwuY21kID0gWEVOX0RPTUNUTF9iaW5kX3B0X2lycTsKKyAgICBkb21j dGwuZG9tYWluID0gKGRvbWlkX3QpZG9taWQ7CiAKKyAgICBiaW5kID0gJihkb21jdGwudS5iaW5k X3B0X2lycSk7CisgICAgYmluZC0+aXJxX3R5cGUgPSBQVF9JUlFfVFlQRV9NU0lfSVI7CisgICAg YmluZC0+bWFjaGluZV9pcnEgPSBwaXJxOworICAgIGJpbmQtPnUubXNpX2lyLnNvdXJjZV9pZCA9 IHNvdXJjZV9pZDsKKyAgICBiaW5kLT51Lm1zaV9pci5kYXRhID0gZGF0YTsKKyAgICBiaW5kLT51 Lm1zaV9pci5hZGRyID0gYWRkcjsKKyAgICBiaW5kLT51Lm1zaV9pci5ndGFibGUgPSBndGFibGU7 CisKKyAgICByYyA9IGRvX2RvbWN0bCh4Y2gsICZkb21jdGwpOworICAgIHJldHVybiByYzsKK30K IAogaW50IHhjX2RvbWFpbl91cGRhdGVfbXNpX2lycSgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwK QEAgLTE3MzIsNiArMTc1OCwzMyBAQCBpbnQgeGNfZG9tYWluX3VwZGF0ZV9tc2lfaXJxKAogICAg IHJldHVybiByYzsKIH0KIAoraW50IHhjX2RvbWFpbl91bmJpbmRfbXNpX2lycV9yZW1hcHBpbmco CisgICAgeGNfaW50ZXJmYWNlICp4Y2gsCisgICAgdWludDMyX3QgZG9taWQsCisgICAgdWludDMy X3QgcGlycSwKKyAgICB1aW50MzJfdCBzb3VyY2VfaWQsCisgICAgdWludDMyX3QgZGF0YSwKKyAg ICB1aW50NjRfdCBhZGRyKQoreworICAgIGludCByYzsKKyAgICB4ZW5fZG9tY3RsX2JpbmRfcHRf aXJxX3QgKmJpbmQ7CisKKyAgICBERUNMQVJFX0RPTUNUTDsKKworICAgIGRvbWN0bC5jbWQgPSBY RU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE7CisgICAgZG9tY3RsLmRvbWFpbiA9IChkb21pZF90KWRv bWlkOworCisgICAgYmluZCA9ICYoZG9tY3RsLnUuYmluZF9wdF9pcnEpOworICAgIGJpbmQtPmly cV90eXBlID0gUFRfSVJRX1RZUEVfTVNJX0lSOworICAgIGJpbmQtPm1hY2hpbmVfaXJxID0gcGly cTsKKyAgICBiaW5kLT51Lm1zaV9pci5zb3VyY2VfaWQgPSBzb3VyY2VfaWQ7CisgICAgYmluZC0+ dS5tc2lfaXIuZGF0YSA9IGRhdGE7CisgICAgYmluZC0+dS5tc2lfaXIuYWRkciA9IGFkZHI7CisK KyAgICByYyA9IGRvX2RvbWN0bCh4Y2gsICZkb21jdGwpOworICAgIHJldHVybiByYzsKK30KKwog aW50IHhjX2RvbWFpbl91bmJpbmRfbXNpX2lycSgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwKICAg ICB1aW50MzJfdCBkb21pZCwKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lv LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pby5jCmluZGV4IGZiNDQyMjMuLjYxOTYzMzQg MTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvLmMKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvaW8uYwpAQCAtMjEsOSArMjEsMTEgQEAKICNpbmNsdWRlIDx4ZW4vaW9t bXUuaD4KICNpbmNsdWRlIDx4ZW4vY3B1Lmg+CiAjaW5jbHVkZSA8eGVuL2lycS5oPgorI2luY2x1 ZGUgPHhlbi92aW9tbXUuaD4KICNpbmNsdWRlIDxhc20vaHZtL2lycS5oPgogI2luY2x1ZGUgPGFz bS9odm0vc3VwcG9ydC5oPgogI2luY2x1ZGUgPGFzbS9pb19hcGljLmg+CisjaW5jbHVkZSA8YXNt L3Zpb21tdS5oPgogCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IGxpc3RfaGVhZCwgZHBj aV9saXN0KTsKIApAQCAtMjc1LDYgKzI3NywxMDYgQEAgc3RhdGljIHN0cnVjdCB2Y3B1ICp2ZWN0 b3JfaGFzaGluZ19kZXN0KGNvbnN0IHN0cnVjdCBkb21haW4gKmQsCiAgICAgcmV0dXJuIGRlc3Q7 CiB9CiAKK3N0YXRpYyB2b2lkIHNldF9odm1fZ21zaV9pbmZvKHN0cnVjdCBodm1fZ21zaV9pbmZv ICptc2ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fZG9tY3RsX2JpbmRfcHRf aXJxX3QgKnB0X2lycV9iaW5kKQoreworICAgIHN3aXRjaCAocHRfaXJxX2JpbmQtPmlycV90eXBl KQorICAgIHsKKyAgICBjYXNlIFBUX0lSUV9UWVBFX01TSToKKyAgICAgICAgbXNpLT5sZWdhY3ku Z3ZlYyA9IHB0X2lycV9iaW5kLT51Lm1zaS5ndmVjOworICAgICAgICBtc2ktPmxlZ2FjeS5nZmxh Z3MgPSBwdF9pcnFfYmluZC0+dS5tc2kuZ2ZsYWdzOworICAgICAgICBicmVhazsKKworICAgIGNh c2UgUFRfSVJRX1RZUEVfTVNJX0lSOgorICAgICAgICBtc2ktPmludHJlbWFwLnNvdXJjZV9pZCA9 IHB0X2lycV9iaW5kLT51Lm1zaV9pci5zb3VyY2VfaWQ7CisgICAgICAgIG1zaS0+aW50cmVtYXAu ZGF0YSA9IHB0X2lycV9iaW5kLT51Lm1zaV9pci5kYXRhOworICAgICAgICBtc2ktPmludHJlbWFw LmFkZHIgPSBwdF9pcnFfYmluZC0+dS5tc2lfaXIuYWRkcjsKKyAgICAgICAgYnJlYWs7CisKKyAg ICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICB9Cit9CisKK3N0 YXRpYyB2b2lkIGNsZWFyX2h2bV9nbXNpX2luZm8oc3RydWN0IGh2bV9nbXNpX2luZm8gKm1zaSwg aW50IGlycV90eXBlKQoreworICAgIHN3aXRjaCAoaXJxX3R5cGUpCisgICAgeworICAgIGNhc2Ug UFRfSVJRX1RZUEVfTVNJOgorICAgICAgICBtc2ktPmxlZ2FjeS5ndmVjID0gMDsKKyAgICAgICAg bXNpLT5sZWdhY3kuZ2ZsYWdzID0gMDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBUX0lS UV9UWVBFX01TSV9JUjoKKyAgICAgICAgbXNpLT5pbnRyZW1hcC5zb3VyY2VfaWQgPSAwOworICAg ICAgICBtc2ktPmludHJlbWFwLmRhdGEgPSAwOworICAgICAgICBtc2ktPmludHJlbWFwLmFkZHIg PSAwOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9VTlJF QUNIQUJMRSgpOworICAgIH0KK30KKworc3RhdGljIGJvb2wgaHZtX2dtc2lfaW5mb19uZWVkX3Vw ZGF0ZShzdHJ1Y3QgaHZtX2dtc2lfaW5mbyAqbXNpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxX3QgKnB0X2lycV9iaW5kKQorewor ICAgIHN3aXRjaCAocHRfaXJxX2JpbmQtPmlycV90eXBlKQorICAgIHsKKyAgICBjYXNlIFBUX0lS UV9UWVBFX01TSToKKyAgICAgICAgcmV0dXJuICgobXNpLT5sZWdhY3kuZ3ZlYyAhPSBwdF9pcnFf YmluZC0+dS5tc2kuZ3ZlYykgfHwKKyAgICAgICAgICAgICAgICAobXNpLT5sZWdhY3kuZ2ZsYWdz ICE9IHB0X2lycV9iaW5kLT51Lm1zaS5nZmxhZ3MpKTsKKworICAgIGNhc2UgUFRfSVJRX1RZUEVf TVNJX0lSOgorICAgICAgICByZXR1cm4gKChtc2ktPmludHJlbWFwLnNvdXJjZV9pZCAhPSBwdF9p cnFfYmluZC0+dS5tc2lfaXIuc291cmNlX2lkKSB8fAorICAgICAgICAgICAgICAgIChtc2ktPmlu dHJlbWFwLmRhdGEgIT0gcHRfaXJxX2JpbmQtPnUubXNpX2lyLmRhdGEpIHx8CisgICAgICAgICAg ICAgICAgKG1zaS0+aW50cmVtYXAuYWRkciAhPSBwdF9pcnFfYmluZC0+dS5tc2lfaXIuYWRkcikp OworCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgfQor CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcGlycV9kcGNpXzJfbXNpX2F0dHIoc3Ry dWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGh2 bV9waXJxX2RwY2kgKnBpcnFfZHBjaSwgdWludDhfdCAqZ3ZlYywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgKmRlc3QsIGJvb2wgKmRtLCB1aW50OF90ICpkbG0pCit7 CisgICAgaW50IHJjID0gMDsKKworICAgIGlmICggcGlycV9kcGNpLT5mbGFncyAmIEhWTV9JUlFf RFBDSV9HVUVTVF9SRU1BUFBFRCApCisgICAgeworICAgICAgICBzdHJ1Y3QgYXJjaF9pcnFfcmVt YXBwaW5nX3JlcXVlc3QgcmVxdWVzdDsKKyAgICAgICAgc3RydWN0IGFyY2hfaXJxX3JlbWFwcGlu Z19pbmZvIGlycV9pbmZvOworCisgICAgICAgIGlycV9yZXF1ZXN0X21zaV9maWxsKCZyZXF1ZXN0 LCBwaXJxX2RwY2ktPmdtc2kuaW50cmVtYXAuc291cmNlX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kuaW50cmVtYXAuYWRkciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGlycV9kcGNpLT5nbXNpLmludHJlbWFwLmRhdGEpOworICAgICAgICBy YyA9IHZpb21tdV9nZXRfaXJxX2luZm8oZCwgJnJlcXVlc3QsICZpcnFfaW5mbyk7CisgICAgICAg IGlmICggcmMgKQorICAgICAgICAgICAgcmV0dXJuIHJjOworCisgICAgICAgICpndmVjID0gaXJx X2luZm8udmVjdG9yOworICAgICAgICAqZGVzdCA9IGlycV9pbmZvLmRlc3Q7CisgICAgICAgICpk bSA9IGlycV9pbmZvLmRlc3RfbW9kZTsKKyAgICAgICAgKmRsbSA9IGlycV9pbmZvLmRlbGl2ZXJ5 X21vZGU7CisgICAgfQorICAgIGVsc2UgaWYgKCBwaXJxX2RwY2ktPmZsYWdzICYgSFZNX0lSUV9E UENJX0dVRVNUX01TSSApCisgICAgeworICAgICAgICAqZ3ZlYyA9IHBpcnFfZHBjaS0+Z21zaS5s ZWdhY3kuZ3ZlYzsKKyAgICAgICAgKmRlc3QgPSBNQVNLX0VYVFIocGlycV9kcGNpLT5nbXNpLmxl Z2FjeS5nZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ET01DVExfVk1TSV9Y ODZfREVTVF9JRF9NQVNLKTsKKyAgICAgICAgKmRtID0gcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5n ZmxhZ3MgJiBYRU5fRE9NQ1RMX1ZNU0lfWDg2X0RNX01BU0s7CisgICAgICAgICpkbG0gPSBNQVNL X0VYVFIocGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MsCisgICAgICAgICAgICAgICAgICAg ICAgICAgWEVOX0RPTUNUTF9WTVNJX1g4Nl9ERUxJVl9NQVNLKTsKKyAgICB9CisgICAgZWxzZQor ICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKworICAgIHJldHVybiByYzsKK30KKwogaW50 IHB0X2lycV9jcmVhdGVfYmluZCgKICAgICBzdHJ1Y3QgZG9tYWluICpkLCB4ZW5fZG9tY3RsX2Jp bmRfcHRfaXJxX3QgKnB0X2lycV9iaW5kKQogewpAQCAtMzM4LDIwICs0NDAsMjQgQEAgaW50IHB0 X2lycV9jcmVhdGVfYmluZCgKICAgICBzd2l0Y2ggKCBwdF9pcnFfYmluZC0+aXJxX3R5cGUgKQog ICAgIHsKICAgICBjYXNlIFBUX0lSUV9UWVBFX01TSToKKyAgICBjYXNlIFBUX0lSUV9UWVBFX01T SV9JUjoKICAgICB7Ci0gICAgICAgIHVpbnQ4X3QgZGVzdCwgZGVsaXZlcnlfbW9kZTsKKyAgICAg ICAgdWludDhfdCBkZWxpdmVyeV9tb2RlLCBndmVjOworICAgICAgICB1aW50MzJfdCBkZXN0Owog ICAgICAgICBib29sIGRlc3RfbW9kZTsKICAgICAgICAgaW50IGRlc3RfdmNwdV9pZDsKICAgICAg ICAgY29uc3Qgc3RydWN0IHZjcHUgKnZjcHU7Ci0gICAgICAgIHVpbnQzMl90IGdmbGFncyA9IHB0 X2lycV9iaW5kLT51Lm1zaS5nZmxhZ3MgJgotICAgICAgICAgICAgICAgICAgICAgICAgICB+WEVO X0RPTUNUTF9WTVNJX1g4Nl9VTk1BU0tFRDsKKyAgICAgICAgYm9vbCBpciA9IChwdF9pcnFfYmlu ZC0+aXJxX3R5cGUgPT0gUFRfSVJRX1RZUEVfTVNJX0lSKTsKKyAgICAgICAgdWludDY0X3QgZ3Rh YmxlID0gaXIgPyBwdF9pcnFfYmluZC0+dS5tc2lfaXIuZ3RhYmxlIDoKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgcHRfaXJxX2JpbmQtPnUubXNpLmd0YWJsZTsKIAogICAgICAgICBpZiAoICEo cGlycV9kcGNpLT5mbGFncyAmIEhWTV9JUlFfRFBDSV9NQVBQRUQpICkKICAgICAgICAgewogICAg ICAgICAgICAgcGlycV9kcGNpLT5mbGFncyA9IEhWTV9JUlFfRFBDSV9NQVBQRUQgfCBIVk1fSVJR X0RQQ0lfTUFDSF9NU0kgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhWTV9JUlFf RFBDSV9HVUVTVF9NU0k7Ci0gICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kubGVnYWN5Lmd2ZWMg PSBwdF9pcnFfYmluZC0+dS5tc2kuZ3ZlYzsKLSAgICAgICAgICAgIHBpcnFfZHBjaS0+Z21zaS5s ZWdhY3kuZ2ZsYWdzID0gZ2ZsYWdzOworICAgICAgICAgICAgaWYgKCBpciApCisgICAgICAgICAg ICAgICAgcGlycV9kcGNpLT5mbGFncyB8PSBIVk1fSVJRX0RQQ0lfR1VFU1RfUkVNQVBQRUQ7Cisg ICAgICAgICAgICBzZXRfaHZtX2dtc2lfaW5mbygmcGlycV9kcGNpLT5nbXNpLCBwdF9pcnFfYmlu ZCk7CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICogJ3B0X2lycV9jcmVhdGVfYmluZCcg Y2FuIGJlIGNhbGxlZCBhZnRlciAncHRfaXJxX2Rlc3Ryb3lfYmluZCcuCiAgICAgICAgICAgICAg KiBUaGUgJ3BpcnFfY2xlYW51cF9jaGVjaycgd2hpY2ggd291bGQgZnJlZSB0aGUgc3RydWN0dXJl IGlzIG9ubHkKQEAgLTM2Niw5ICs0NzIsOSBAQCBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5kKAogICAg ICAgICAgICAgcGlycV9kcGNpLT5kb20gPSBkOwogICAgICAgICAgICAgLyogYmluZCBhZnRlciBo dm1faXJxX2RwY2kgaXMgc2V0dXAgdG8gYXZvaWQgcmFjZSB3aXRoIGlycSBoYW5kbGVyKi8KICAg ICAgICAgICAgIHJjID0gcGlycV9ndWVzdF9iaW5kKGQtPnZjcHVbMF0sIGluZm8sIDApOwotICAg ICAgICAgICAgaWYgKCByYyA9PSAwICYmIHB0X2lycV9iaW5kLT51Lm1zaS5ndGFibGUgKQorICAg ICAgICAgICAgaWYgKCByYyA9PSAwICYmIGd0YWJsZSApCiAgICAgICAgICAgICB7Ci0gICAgICAg ICAgICAgICAgcmMgPSBtc2l4dGJsX3B0X3JlZ2lzdGVyKGQsIGluZm8sIHB0X2lycV9iaW5kLT51 Lm1zaS5ndGFibGUpOworICAgICAgICAgICAgICAgIHJjID0gbXNpeHRibF9wdF9yZWdpc3Rlcihk LCBpbmZvLCBndGFibGUpOwogICAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHBpcnFfZ3Vlc3RfdW5iaW5kKGQs IGluZm8pOwpAQCAtMzgzLDggKzQ4OSw3IEBAIGludCBwdF9pcnFfY3JlYXRlX2JpbmQoCiAgICAg ICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSApCiAgICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgICAgcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MgPSAwOwotICAg ICAgICAgICAgICAgIHBpcnFfZHBjaS0+Z21zaS5sZWdhY3kuZ3ZlYyA9IDA7CisgICAgICAgICAg ICAgICAgY2xlYXJfaHZtX2dtc2lfaW5mbygmcGlycV9kcGNpLT5nbXNpLCBwdF9pcnFfYmluZC0+ aXJxX3R5cGUpOwogICAgICAgICAgICAgICAgIHBpcnFfZHBjaS0+ZG9tID0gTlVMTDsKICAgICAg ICAgICAgICAgICBwaXJxX2RwY2ktPmZsYWdzID0gMDsKICAgICAgICAgICAgICAgICBwaXJxX2Ns ZWFudXBfY2hlY2soaW5mbywgZCk7CkBAIC0zOTYsNiArNTAxLDkgQEAgaW50IHB0X2lycV9jcmVh dGVfYmluZCgKICAgICAgICAgewogICAgICAgICAgICAgdWludDMyX3QgbWFzayA9IEhWTV9JUlFf RFBDSV9NQUNIX01TSSB8IEhWTV9JUlFfRFBDSV9HVUVTVF9NU0k7CiAKKyAgICAgICAgICAgIGlm ICggaXIgKQorICAgICAgICAgICAgICAgIG1hc2sgfD0gSFZNX0lSUV9EUENJX0dVRVNUX1JFTUFQ UEVEOworCiAgICAgICAgICAgICBpZiAoIChwaXJxX2RwY2ktPmZsYWdzICYgbWFzaykgIT0gbWFz ayApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJmQtPmV2ZW50 X2xvY2spOwpAQCAtNDAzLDMxICs1MTEsMzAgQEAgaW50IHB0X2lycV9jcmVhdGVfYmluZCgKICAg ICAgICAgICAgIH0KIAogICAgICAgICAgICAgLyogSWYgcGlycSBpcyBhbHJlYWR5IG1hcHBlZCBh cyB2bXNpLCB1cGRhdGUgZ3Vlc3QgZGF0YS9hZGRyLiAqLwotICAgICAgICAgICAgaWYgKCBwaXJx X2RwY2ktPmdtc2kubGVnYWN5Lmd2ZWMgIT0gcHRfaXJxX2JpbmQtPnUubXNpLmd2ZWMgfHwKLSAg ICAgICAgICAgICAgICAgcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3MgIT0gZ2ZsYWdzICkK KyAgICAgICAgICAgIGlmICggaHZtX2dtc2lfaW5mb19uZWVkX3VwZGF0ZSgmcGlycV9kcGNpLT5n bXNpLCBwdF9pcnFfYmluZCkgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8qIERp cmVjdGx5IGNsZWFyIHBlbmRpbmcgRU9JcyBiZWZvcmUgZW5hYmxpbmcgbmV3IE1TSSBpbmZvLiAq LwogICAgICAgICAgICAgICAgIHBpcnFfZ3Vlc3RfZW9pKGluZm8pOwogCi0gICAgICAgIH0KLSAg ICAgICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kubGVnYWN5Lmd2ZWMgPSBwdF9pcnFfYmluZC0+ dS5tc2kuZ3ZlYzsKLSAgICAgICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kubGVnYWN5LmdmbGFn cyA9IGdmbGFnczsKKyAgICAgICAgICAgICAgICBzZXRfaHZtX2dtc2lfaW5mbygmcGlycV9kcGNp LT5nbXNpLCBwdF9pcnFfYmluZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg LyogQ2FsY3VsYXRlIGRlc3RfdmNwdV9pZCBmb3IgTVNJLXR5cGUgcGlycSBtaWdyYXRpb24uICov Ci0gICAgICAgIGRlc3QgPSBNQVNLX0VYVFIocGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5nZmxhZ3Ms Ci0gICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0RPTUNUTF9WTVNJX1g4Nl9ERVNUX0lEX01B U0spOwotICAgICAgICBkZXN0X21vZGUgPSBwaXJxX2RwY2ktPmdtc2kubGVnYWN5LmdmbGFncyAm IFhFTl9ET01DVExfVk1TSV9YODZfRE1fTUFTSzsKLSAgICAgICAgZGVsaXZlcnlfbW9kZSA9IE1B U0tfRVhUUihwaXJxX2RwY2ktPmdtc2kubGVnYWN5LmdmbGFncywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBYRU5fRE9NQ1RMX1ZNU0lfWDg2X0RFTElWX01BU0spOwotCisgICAg ICAgIHJjID0gcGlycV9kcGNpXzJfbXNpX2F0dHIoZCwgcGlycV9kcGNpLCAmZ3ZlYywgJmRlc3Qs ICZkZXN0X21vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRlbGl2ZXJ5 X21vZGUpOworICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSApCisgICAgICAgIHsKKyAgICAgICAg ICAgIHNwaW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKKyAgICAgICAgICAgIHJldHVybiByYzsK KyAgICAgICAgfQogICAgICAgICBkZXN0X3ZjcHVfaWQgPSBodm1fZ2lycV9kZXN0XzJfdmNwdV9p ZChkLCBkZXN0LCBkZXN0X21vZGUpOwogICAgICAgICBwaXJxX2RwY2ktPmdtc2kuZGVzdF92Y3B1 X2lkID0gZGVzdF92Y3B1X2lkOwogICAgICAgICBzcGluX3VubG9jaygmZC0+ZXZlbnRfbG9jayk7 CiAKICAgICAgICAgcGlycV9kcGNpLT5nbXNpLnBvc3RlZCA9IGZhbHNlOwogICAgICAgICB2Y3B1 ID0gKGRlc3RfdmNwdV9pZCA+PSAwKSA/IGQtPnZjcHVbZGVzdF92Y3B1X2lkXSA6IE5VTEw7Ci0g ICAgICAgIGlmICggaW9tbXVfaW50cG9zdCApCisgICAgICAgIC8qIEZJWE1FOiB3b24ndCB1c2Ug aW50ZXJydXB0IHBvc3RpbmcgZm9yIGd1ZXN0J3MgcmVtYXBwaW5nIE1TSXMgKi8KKyAgICAgICAg aWYgKCBpb21tdV9pbnRwb3N0ICYmICFpciApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICgg ZGVsaXZlcnlfbW9kZSA9PSBkZXN0X0xvd2VzdFByaW8gKQogICAgICAgICAgICAgICAgIHZjcHUg PSB2ZWN0b3JfaGFzaGluZ19kZXN0KGQsIGRlc3QsIGRlc3RfbW9kZSwKQEAgLTQzOSw3ICs1NDYs NyBAQCBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5kKAogICAgICAgICAgICAgaHZtX21pZ3JhdGVfcGly cXMoZC0+dmNwdVtkZXN0X3ZjcHVfaWRdKTsKIAogICAgICAgICAvKiBVc2UgaW50ZXJydXB0IHBv c3RpbmcgaWYgaXQgaXMgc3VwcG9ydGVkLiAqLwotICAgICAgICBpZiAoIGlvbW11X2ludHBvc3Qg KQorICAgICAgICBpZiAoIGlvbW11X2ludHBvc3QgJiYgIWlyICkKICAgICAgICAgICAgIHBpX3Vw ZGF0ZV9pcnRlKHZjcHUgPyAmdmNwdS0+YXJjaC5odm1fdm14LnBpX2Rlc2MgOiBOVUxMLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW5mbywgcGlycV9kcGNpLT5nbXNpLmxlZ2FjeS5ndmVj KTsKIApAQCAtNjQ2LDYgKzc1Myw3IEBAIGludCBwdF9pcnFfZGVzdHJveV9iaW5kKAogICAgICAg ICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFRfSVJRX1RZUEVfTVNJOgorICAgIGNhc2Ug UFRfSVJRX1RZUEVfTVNJX0lSOgogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg ICByZXR1cm4gLUVPUE5PVFNVUFA7CkBAIC02NjQsNyArNzcyLDggQEAgaW50IHB0X2lycV9kZXN0 cm95X2JpbmQoCiAgICAgcGlycSA9IHBpcnFfaW5mbyhkLCBtYWNoaW5lX2dzaSk7CiAgICAgcGly cV9kcGNpID0gcGlycV9kcGNpKHBpcnEpOwogCi0gICAgaWYgKCBodm1faXJxX2RwY2kgJiYgcHRf aXJxX2JpbmQtPmlycV90eXBlICE9IFBUX0lSUV9UWVBFX01TSSApCisgICAgaWYgKCBodm1faXJx X2RwY2kgJiYgcHRfaXJxX2JpbmQtPmlycV90eXBlICE9IFBUX0lSUV9UWVBFX01TSSAmJgorICAg ICAgICAgcHRfaXJxX2JpbmQtPmlycV90eXBlICE9IFBUX0lSUV9UWVBFX01TSV9JUiApCiAgICAg ewogICAgICAgICB1bnNpZ25lZCBpbnQgYnVzID0gcHRfaXJxX2JpbmQtPnUucGNpLmJ1czsKICAg ICAgICAgdW5zaWduZWQgaW50IGRldmljZSA9IHB0X2lycV9iaW5kLT51LnBjaS5kZXZpY2U7CmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pcnEuaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2lycS5oCmluZGV4IGJkOGE5MTguLjRmNWQzN2IgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL2lycS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2ly cS5oCkBAIC0xMjEsNiArMTIxLDcgQEAgc3RydWN0IGRldl9pbnR4X2dzaV9saW5rIHsKICNkZWZp bmUgX0hWTV9JUlFfRFBDSV9HVUVTVF9QQ0lfU0hJRlQgICAgICAgICAgIDQKICNkZWZpbmUgX0hW TV9JUlFfRFBDSV9HVUVTVF9NU0lfU0hJRlQgICAgICAgICAgIDUKICNkZWZpbmUgX0hWTV9JUlFf RFBDSV9JREVOVElUWV9HU0lfU0hJRlQgICAgICAgIDYKKyNkZWZpbmUgX0hWTV9JUlFfRFBDSV9H VUVTVF9SRU1BUFBFRF9TSElGVCAgICAgIDcKICNkZWZpbmUgX0hWTV9JUlFfRFBDSV9UUkFOU0xB VEVfU0hJRlQgICAgICAgICAgMTUKICNkZWZpbmUgSFZNX0lSUV9EUENJX01BQ0hfUENJICAgICAg ICAoMXUgPDwgX0hWTV9JUlFfRFBDSV9NQUNIX1BDSV9TSElGVCkKICNkZWZpbmUgSFZNX0lSUV9E UENJX01BQ0hfTVNJICAgICAgICAoMXUgPDwgX0hWTV9JUlFfRFBDSV9NQUNIX01TSV9TSElGVCkK QEAgLTEyOCw2ICsxMjksNyBAQCBzdHJ1Y3QgZGV2X2ludHhfZ3NpX2xpbmsgewogI2RlZmluZSBI Vk1fSVJRX0RQQ0lfRU9JX0xBVENIICAgICAgICgxdSA8PCBfSFZNX0lSUV9EUENJX0VPSV9MQVRD SF9TSElGVCkKICNkZWZpbmUgSFZNX0lSUV9EUENJX0dVRVNUX1BDSSAgICAgICAoMXUgPDwgX0hW TV9JUlFfRFBDSV9HVUVTVF9QQ0lfU0hJRlQpCiAjZGVmaW5lIEhWTV9JUlFfRFBDSV9HVUVTVF9N U0kgICAgICAgKDF1IDw8IF9IVk1fSVJRX0RQQ0lfR1VFU1RfTVNJX1NISUZUKQorI2RlZmluZSBI Vk1fSVJRX0RQQ0lfR1VFU1RfUkVNQVBQRUQgICgxdSA8PCBfSFZNX0lSUV9EUENJX0dVRVNUX1JF TUFQUEVEX1NISUZUKQogI2RlZmluZSBIVk1fSVJRX0RQQ0lfSURFTlRJVFlfR1NJICAgICgxdSA8 PCBfSFZNX0lSUV9EUENJX0lERU5USVRZX0dTSV9TSElGVCkKICNkZWZpbmUgSFZNX0lSUV9EUENJ X1RSQU5TTEFURSAgICAgICAoMXUgPDwgX0hWTV9JUlFfRFBDSV9UUkFOU0xBVEVfU0hJRlQpCiAK QEAgLTEzNyw2ICsxMzksMTEgQEAgc3RydWN0IGh2bV9nbXNpX2luZm8gewogICAgICAgICAgICAg dWludDMyX3QgZ3ZlYzsKICAgICAgICAgICAgIHVpbnQzMl90IGdmbGFnczsKICAgICAgICAgfSBs ZWdhY3k7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50MzJfdCBzb3VyY2VfaWQ7 CisgICAgICAgICAgICB1aW50MzJfdCBkYXRhOworICAgICAgICAgICAgdWludDY0X3QgYWRkcjsK KyAgICAgICAgfSBpbnRyZW1hcDsKICAgICB9OwogICAgIGludCBkZXN0X3ZjcHVfaWQ7IC8qIC0x IDptdWx0aS1kZXN0LCBub24tbmVnYXRpdmU6IGRlc3RfdmNwdV9pZCAqLwogICAgIGJvb2wgcG9z dGVkOyAvKiBkaXJlY3RseSBkZWxpdmVyIHRvIGd1ZXN0IHZpYSBWVC1kIFBJPyAqLwpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2Rv bWN0bC5oCmluZGV4IDY4ODU0YjYuLjhjNTljZmMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1 YmxpYy9kb21jdGwuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKQEAgLTU1OSw2 ICs1NTksNyBAQCB0eXBlZGVmIGVudW0gcHRfaXJxX3R5cGVfZSB7CiAgICAgUFRfSVJRX1RZUEVf TVNJLAogICAgIFBUX0lSUV9UWVBFX01TSV9UUkFOU0xBVEUsCiAgICAgUFRfSVJRX1RZUEVfU1BJ LCAgICAvKiBBUk06IHZhbGlkIHJhbmdlIDMyLTEwMTkgKi8KKyAgICBQVF9JUlFfVFlQRV9NU0lf SVIsCiB9IHB0X2lycV90eXBlX3Q7CiBzdHJ1Y3QgeGVuX2RvbWN0bF9iaW5kX3B0X2lycSB7CiAg ICAgdWludDMyX3QgbWFjaGluZV9pcnE7CkBAIC01ODYsNiArNTg3LDEyIEBAIHN0cnVjdCB4ZW5f ZG9tY3RsX2JpbmRfcHRfaXJxIHsKICAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgZ3RhYmxl OwogICAgICAgICB9IG1zaTsKICAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90 IHNvdXJjZV9pZDsKKyAgICAgICAgICAgIHVpbnQzMl90IGRhdGE7CisgICAgICAgICAgICB1aW50 NjRfdCBhZGRyOworICAgICAgICAgICAgdWludDY0X3QgZ3RhYmxlOworICAgICAgICB9IG1zaV9p cjsKKyAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgIHVpbnQxNl90IHNwaTsKICAgICAgICAg fSBzcGk7CiAgICAgfSB1OwotLSAKMS44LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=