From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v2] x86/vpt: guarantee the return value of pt_update_irq() set in vIRR or PIR Date: Fri, 13 Oct 2017 13:10:25 +0800 Message-ID: <1507871425-6061-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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 , Quan Xu , Jun Nakajima , Andrew Cooper , Jan Beulich , Chao Gao List-Id: xen-devel@lists.xenproject.org cHRfdXBkYXRlX2lycSgpIGlzIGV4cGVjdGVkIHRvIHJldHVybiB0aGUgdmVjdG9yIG51bWJlciBv ZiBwZXJpb2RpYwp0aW1lciBpbnRlcnJ1cHQsIHdoaWNoIHNob3VsZCBiZSBzZXQgaW4gdklSUiBv ZiB2bGFwaWMgb3IgaW4gUElSLgpPdGhlcndpc2UgaXQgd291bGQgdHJpZ2dlciB0aGUgYXNzZXJ0 aW9uIGluIHZteF9pbnRyX2Fzc2lzdCgpLCBwbGVhc2UKc2VlaW5nIGh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNy0xMC9tc2cwMDkxNS5odG1s LgoKQnV0IGl0IGZhaWxzIHRvIGFjaGlldmUgdGhhdCBpbiB0aGUgZm9sbG93aW5nIHR3byBjYXNl OgoxLiBodm1faXNhX2lycV9hc3NlcnQoKSBtYXkgbm90IHNldCB0aGUgY29ycmVzcG9uZGluZyBi aXQgaW4gdklSUiBmb3IKbWFzayBmaWVsZCBvZiBJT0FQSUMgUlRFIGlzIHNldC4gUGxlYXNlIHJl ZmVyIHRvIHRoZSBjYWxsIHRyZWUKdm14X2ludHJfYXNzaXN0KCkgLT4gcHRfdXBkYXRlX2lycSgp IC0+IGh2bV9pc2FfaXJxX2Fzc2VydCgpIC0+CmFzc2VydF9pcnEoKSAtPiBhc3NlcnRfZ3NpKCkg LT4gdmlvYXBpY19pcnFfcG9zaXRpdmVfZWRnZSgpLiBUaGUgcGF0Y2gKY2hlY2tzIHdoZXRoZXIg dGhlIHZlY3RvciBpcyBzZXQgb3Igbm90IGluIHZJUlIgb2YgdmxhcGljIG9yIFBJUiBiZWZvcmUK cmV0dXJuaW5nLgoKMi4gc29tZW9uZSBjaGFuZ2VzIHRoZSB2ZWN0b3IgZmllbGQgb2YgSU9BUElD IFJURSBiZXR3ZWVuIGFzc2VydGluZwp0aGUgaXJxIGFuZCBnZXR0aW5nIHRoZSB2ZWN0b3Igb2Yg dGhlIGlycSwgbGVhZGluZyB0byBzZXR0aW5nIHRoZQpvbGQgdmVjdG9yIG51bWJlciBidXQgcmV0 dXJuaW5nIGEgZGlmZmVyZW50IHZlY3RvciBudW1iZXIuIFRoaXMgcGF0Y2gKYWxsb3dzIGh2bV9p c2FfaXJxX2Fzc2VydCgpIHRvIGFjY2VwdCBhIGNhbGxiYWNrIHdoaWNoIGNhbiBnZXQgdGhlCmlu dGVycnVwdCB2ZWN0b3Igd2l0aCBpcnFfbG9jayBoZWxkLiBUaHVzLCBubyBvbmUgY2FuIGNoYW5n ZSB0aGUgdmVjdG9yCmJldHdlZW4gdGhlIHR3byBvcGVyYXRpb25zLgoKU2lnbmVkLW9mZi1ieTog Q2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KLS0tCnBhc3NlZCB0aGUgdHdvIHNpbXBsZSB4 dGYgdGVzdHMgaW4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hl bi1kZXZlbC8yMDE3LTEwL21zZzAwOTE1Lmh0bWwuCiwgd2hpY2ggYXJlIGRlc2lnbmVkIHRvIHBy b2R1Y2UgdGhlIGFib3ZlIHR3byBjYXNlcy4KCnYyOgotIGFkZCBhIGNhbGxiYWNrIHRvIGh2bV9p c2FfaXJxX2Fzc2VydCgpIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24KLSBDb25zdGlmeSB2bGFw aWMgYXJndW1lbnQgb2YgdmxhcGljX3Rlc3RfaXJxKCkKLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2Rt LmMgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2h2bS9pcnEuYyAgICAgICAgICAg IHwgMTEgKysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni9odm0vcG10aW1lci5jICAgICAgICB8ICAy ICstCiB4ZW4vYXJjaC94ODYvaHZtL3J0Yy5jICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gv eDg2L2h2bS92bGFwaWMuYyAgICAgICAgIHwgMTIgKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYv aHZtL3ZteC92bXguYyAgICAgICAgfCAgNyArKysrKysrCiB4ZW4vYXJjaC94ODYvaHZtL3ZwdC5j ICAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0K IHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oICAgICB8ICAxICsKIHhlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2lycS5oICAgICB8IDEyICsrKysrKysrKystLQogeGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vdmxhcGljLmggIHwgIDEgKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZteC5o IHwgIDUgKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDIwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBiL3hlbi9hcmNoL3g4 Ni9odm0vZG0uYwppbmRleCAzMmFkZTk1Li5hNzg3ZjQzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL2RtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCkBAIC0xNDMsNyArMTQzLDcg QEAgc3RhdGljIGludCBzZXRfaXNhX2lycV9sZXZlbChzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90 IGlzYV9pcnEsCiAgICAgICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIGlzYV9pcnEpOwogICAg ICAgICBicmVhazsKICAgICBjYXNlIDE6Ci0gICAgICAgIGh2bV9pc2FfaXJxX2Fzc2VydChkLCBp c2FfaXJxKTsKKyAgICAgICAgaHZtX2lzYV9pcnFfYXNzZXJ0KGQsIGlzYV9pcnEsIE5VTEwpOwog ICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gLUVJTlZBTDsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaXJxLmMgYi94ZW4vYXJjaC94ODYvaHZtL2lycS5j CmluZGV4IGU0MjVkZjkuLmQ3OWEzNjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaXJx LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pcnEuYwpAQCAtMTY4LDExICsxNjgsMTMgQEAgdm9p ZCBodm1fZ3NpX2RlYXNzZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBnc2kpCiAg ICAgc3Bpbl91bmxvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CiB9CiAKLXZvaWQg aHZtX2lzYV9pcnFfYXNzZXJ0KAotICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBp c2FfaXJxKQoraW50IGh2bV9pc2FfaXJxX2Fzc2VydChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBpbnQgaXNhX2lycSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZ2V0X3ZlY3Rvciko Y29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGdzaSkpCiB7CiAgICAgc3RydWN0IGh2bV9pcnEgKmh2bV9p cnEgPSBodm1fZG9tYWluX2lycShkKTsKICAgICB1bnNpZ25lZCBpbnQgZ3NpID0gaHZtX2lzYV9p cnFfdG9fZ3NpKGlzYV9pcnEpOworICAgIGludCB2ZWN0b3IgPSAwOwogCiAgICAgQVNTRVJUKGlz YV9pcnEgPD0gMTUpOwogCkBAIC0xODIsNyArMTg0LDEyIEBAIHZvaWQgaHZtX2lzYV9pcnFfYXNz ZXJ0KAogICAgICAgICAgKGh2bV9pcnEtPmdzaV9hc3NlcnRfY291bnRbZ3NpXSsrID09IDApICkK ICAgICAgICAgYXNzZXJ0X2lycShkLCBnc2ksIGlzYV9pcnEpOwogCisgICAgaWYgKCBnZXRfdmVj dG9yICkKKyAgICAgICAgdmVjdG9yID0gZ2V0X3ZlY3RvcihkLCBnc2kpOworCiAgICAgc3Bpbl91 bmxvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CisKKyAgICByZXR1cm4gdmVjdG9y OwogfQogCiB2b2lkIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KApkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9wbXRpbWVyLmMgYi94ZW4vYXJjaC94ODYvaHZtL3BtdGltZXIuYwppbmRleCBiNzBj Mjk5Li40MzU2NDdmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3BtdGltZXIuYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL3BtdGltZXIuYwpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgdm9p ZCBwbXRfdXBkYXRlX3NjaShQTVRTdGF0ZSAqcykKICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQo JnMtPmxvY2spKTsKIAogICAgIGlmICggYWNwaS0+cG0xYV9lbiAmIGFjcGktPnBtMWFfc3RzICYg U0NJX01BU0sgKQotICAgICAgICBodm1faXNhX2lycV9hc3NlcnQocy0+dmNwdS0+ZG9tYWluLCBT Q0lfSVJRKTsKKyAgICAgICAgaHZtX2lzYV9pcnFfYXNzZXJ0KHMtPnZjcHUtPmRvbWFpbiwgU0NJ X0lSUSwgTlVMTCk7CiAgICAgZWxzZQogICAgICAgICBodm1faXNhX2lycV9kZWFzc2VydChzLT52 Y3B1LT5kb21haW4sIFNDSV9JUlEpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9y dGMuYyBiL3hlbi9hcmNoL3g4Ni9odm0vcnRjLmMKaW5kZXggYmNmYTE2OS4uY2I3NWI5OSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9ydGMuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3J0 Yy5jCkBAIC03NSw3ICs3NSw3IEBAIHN0YXRpYyB2b2lkIHJ0Y191cGRhdGVfaXJxKFJUQ1N0YXRl ICpzKQogICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19JUlFGOwogICAgIGlm ICggcnRjX21vZGVfaXMocywgbm9fYWNrKSApCiAgICAgICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0 KHZydGNfZG9tYWluKHMpLCBSVENfSVJRKTsKLSAgICBodm1faXNhX2lycV9hc3NlcnQodnJ0Y19k b21haW4ocyksIFJUQ19JUlEpOworICAgIGh2bV9pc2FfaXJxX2Fzc2VydCh2cnRjX2RvbWFpbihz KSwgUlRDX0lSUSwgTlVMTCk7CiB9CiAKIC8qIENhbGxlZCBieSB0aGUgVlBUIGNvZGUgYWZ0ZXIg aXQncyBpbmplY3RlZCBhIFBGIGludGVycnVwdCBmb3IgdXMuCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvaHZtL3ZsYXBpYy5jIGIveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYwppbmRleCA0YmZj NTNlLi41MGY1M2JkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZsYXBpYy5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMKQEAgLTEzNyw2ICsxMzcsMTggQEAgc3RhdGljIHZv aWQgdmxhcGljX2Vycm9yKHN0cnVjdCB2bGFwaWMgKnZsYXBpYywgdW5zaWduZWQgaW50IGVycm1h c2spCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmxhcGljLT5lc3JfbG9jaywgZmxhZ3Mp OwogfQogCitib29sIHZsYXBpY190ZXN0X2lycShjb25zdCBzdHJ1Y3QgdmxhcGljICp2bGFwaWMs IHVpbnQ4X3QgdmVjKQoreworICAgIGlmICggdW5saWtlbHkodmVjIDwgMTYpICkKKyAgICAgICAg cmV0dXJuIGZhbHNlOworCisgICAgaWYgKCBodm1fZnVuY3MudGVzdF9waXIgJiYKKyAgICAgICAg IGh2bV9mdW5jcy50ZXN0X3Bpcihjb25zdF92bGFwaWNfdmNwdSh2bGFwaWMpLCB2ZWMpICkKKyAg ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gdmxhcGljX3Rlc3RfdmVjdG9yKHZlYywg JnZsYXBpYy0+cmVncy0+ZGF0YVtBUElDX0lSUl0pOworfQorCiB2b2lkIHZsYXBpY19zZXRfaXJx KHN0cnVjdCB2bGFwaWMgKnZsYXBpYywgdWludDhfdCB2ZWMsIHVpbnQ4X3QgdHJpZykKIHsKICAg ICBzdHJ1Y3QgdmNwdSAqdGFyZ2V0ID0gdmxhcGljX3ZjcHUodmxhcGljKTsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMK aW5kZXggYzIxNDg3MC4uYjE4Y2NlYSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgv dm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKQEAgLTIxMjUsNiArMjEyNSwx MSBAQCBzdGF0aWMgdm9pZCB2bXhfc3luY19waXJfdG9faXJyKHN0cnVjdCB2Y3B1ICp2KQogICAg ICAgICB2bGFwaWNfc2V0X3ZlY3RvcihpLCAmdmxhcGljLT5yZWdzLT5kYXRhW0FQSUNfSVJSXSk7 CiB9CiAKK3N0YXRpYyBib29sIHZteF90ZXN0X3Bpcihjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWlu dDhfdCB2ZWMpCit7CisgICAgcmV0dXJuIHBpX3Rlc3RfcGlyKHZlYywgJnYtPmFyY2guaHZtX3Zt eC5waV9kZXNjKTsKK30KKwogc3RhdGljIHZvaWQgdm14X2hhbmRsZV9lb2kodTggdmVjdG9yKQog ewogICAgIHVuc2lnbmVkIGxvbmcgc3RhdHVzOwpAQCAtMjM1Miw2ICsyMzU3LDcgQEAgc3RhdGlj IHN0cnVjdCBodm1fZnVuY3Rpb25fdGFibGUgX19pbml0ZGF0YSB2bXhfZnVuY3Rpb25fdGFibGUg PSB7CiAgICAgLnByb2Nlc3NfaXNyICAgICAgICAgID0gdm14X3Byb2Nlc3NfaXNyLAogICAgIC5k ZWxpdmVyX3Bvc3RlZF9pbnRyICA9IHZteF9kZWxpdmVyX3Bvc3RlZF9pbnRyLAogICAgIC5zeW5j X3Bpcl90b19pcnIgICAgICA9IHZteF9zeW5jX3Bpcl90b19pcnIsCisgICAgLnRlc3RfcGlyICAg ICAgICAgICAgID0gdm14X3Rlc3RfcGlyLAogICAgIC5oYW5kbGVfZW9pICAgICAgICAgICA9IHZt eF9oYW5kbGVfZW9pLAogICAgIC5uaHZtX2hhcF93YWxrX0wxX3AybSA9IG52bXhfaGFwX3dhbGtf TDFfcDJtLAogICAgIC5lbmFibGVfbXNyX2ludGVyY2VwdGlvbiA9IHZteF9lbmFibGVfbXNyX2lu dGVyY2VwdGlvbiwKQEAgLTI0OTksNiArMjUwNSw3IEBAIGNvbnN0IHN0cnVjdCBodm1fZnVuY3Rp b25fdGFibGUgKiBfX2luaXQgc3RhcnRfdm14KHZvaWQpCiAgICAgewogICAgICAgICB2bXhfZnVu Y3Rpb25fdGFibGUuZGVsaXZlcl9wb3N0ZWRfaW50ciA9IE5VTEw7CiAgICAgICAgIHZteF9mdW5j dGlvbl90YWJsZS5zeW5jX3Bpcl90b19pcnIgPSBOVUxMOworICAgICAgICB2bXhfZnVuY3Rpb25f dGFibGUudGVzdF9waXIgPSBOVUxMOwogICAgIH0KIAogICAgIGlmICggY3B1X2hhc192bXhfdHNj X3NjYWxpbmcgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92cHQuYyBiL3hlbi9hcmNo L3g4Ni9odm0vdnB0LmMKaW5kZXggMzg0MTE0MC4uMWIyMTlhYSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS92cHQuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZwdC5jCkBAIC0yNTIsNyAr MjUyLDcgQEAgaW50IHB0X3VwZGF0ZV9pcnEoc3RydWN0IHZjcHUgKnYpCiAgICAgc3RydWN0IGxp c3RfaGVhZCAqaGVhZCA9ICZ2LT5hcmNoLmh2bV92Y3B1LnRtX2xpc3Q7CiAgICAgc3RydWN0IHBl cmlvZGljX3RpbWUgKnB0LCAqdGVtcCwgKmVhcmxpZXN0X3B0OwogICAgIHVpbnQ2NF90IG1heF9s YWc7Ci0gICAgaW50IGlycSwgaXNfbGFwaWM7CisgICAgaW50IGlycSwgaXNfbGFwaWMsIHB0X3Zl Y3RvcjsKIAogICAgIHNwaW5fbG9jaygmdi0+YXJjaC5odm1fdmNwdS50bV9sb2NrKTsKIApAQCAt MjkyLDI1ICsyOTIsMzggQEAgaW50IHB0X3VwZGF0ZV9pcnEoc3RydWN0IHZjcHUgKnYpCiAKICAg ICBzcGluX3VubG9jaygmdi0+YXJjaC5odm1fdmNwdS50bV9sb2NrKTsKIAorICAgIC8qCisgICAg ICogSWYgcGVyaW9kaWMgdGltZXIgaW50ZXJydXQgaXMgaGFuZGxlZCBieSBsYXBpYywgaXRzIHZl Y3RvciBpbgorICAgICAqIElSUiBpcyByZXR1cm5lZCBhbmQgdXNlZCB0byBzZXQgZW9pX2V4aXRf Yml0bWFwIGZvciB2aXJ0dWFsCisgICAgICogaW50ZXJydXB0IGRlbGl2ZXJ5IGNhc2UuIE90aGVy d2lzZSByZXR1cm4gLTEgdG8gZG8gbm90aGluZy4KKyAgICAgKi8KICAgICBpZiAoIGlzX2xhcGlj ICkKKyAgICB7CiAgICAgICAgIHZsYXBpY19zZXRfaXJxKHZjcHVfdmxhcGljKHYpLCBpcnEsIDAp OworICAgICAgICBwdF92ZWN0b3IgPSBpcnE7CisgICAgfQogICAgIGVsc2UKICAgICB7CiAgICAg ICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KHYtPmRvbWFpbiwgaXJxKTsKLSAgICAgICAgaHZtX2lz YV9pcnFfYXNzZXJ0KHYtPmRvbWFpbiwgaXJxKTsKKyAgICAgICAgaWYgKCBwbGF0Zm9ybV9sZWdh Y3lfaXJxKGlycSkgJiYgdmxhcGljX2FjY2VwdF9waWNfaW50cih2KSAmJgorICAgICAgICAgICAg IHYtPmRvbWFpbi0+YXJjaC5odm1fZG9tYWluLnZwaWNbaXJxID4+IDNdLmludF9vdXRwdXQgKQor ICAgICAgICB7CisgICAgICAgICAgICBodm1faXNhX2lycV9hc3NlcnQodi0+ZG9tYWluLCBpcnEs IE5VTEwpOworICAgICAgICAgICAgcHRfdmVjdG9yID0gLTE7CisgICAgICAgIH0KKyAgICAgICAg ZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBwdF92ZWN0b3IgPSBodm1faXNhX2lycV9hc3Nl cnQodi0+ZG9tYWluLCBpcnEsIHZpb2FwaWNfZ2V0X3ZlY3Rvcik7CisgICAgICAgICAgICAvKgor ICAgICAgICAgICAgICogaHZtX2lzYV9pcnFfYXNzZXJ0IG1heSBub3Qgc2V0IHRoZSBjb3JyZXNw b25kaW5nIGJpdCBpbiB2SVJSCisgICAgICAgICAgICAgKiB3aGVuIG1hc2sgZmllbGQgb2YgSU9B UElDIFJURSBpcyBzZXQuIENoZWNrIGl0IGFnYWluLgorICAgICAgICAgICAgICovCisgICAgICAg ICAgICBpZiAoICF2bGFwaWNfdGVzdF9pcnEodmNwdV92bGFwaWModiksIHB0X3ZlY3RvcikgKQor ICAgICAgICAgICAgICAgIHB0X3ZlY3RvciA9IC0xOworICAgICAgICB9CiAgICAgfQogCi0gICAg LyoKLSAgICAgKiBJZiBwZXJpb2RpYyB0aW1lciBpbnRlcnJ1dCBpcyBoYW5kbGVkIGJ5IGxhcGlj LCBpdHMgdmVjdG9yIGluCi0gICAgICogSVJSIGlzIHJldHVybmVkIGFuZCB1c2VkIHRvIHNldCBl b2lfZXhpdF9iaXRtYXAgZm9yIHZpcnR1YWwKLSAgICAgKiBpbnRlcnJ1cHQgZGVsaXZlcnkgY2Fz ZS4gT3RoZXJ3aXNlIHJldHVybiAtMSB0byBkbyBub3RoaW5nLiAgCi0gICAgICovIAotICAgIGlm ICggIWlzX2xhcGljICYmCi0gICAgICAgICBwbGF0Zm9ybV9sZWdhY3lfaXJxKGlycSkgJiYgdmxh cGljX2FjY2VwdF9waWNfaW50cih2KSAmJgotICAgICAgICAgKCZ2LT5kb21haW4tPmFyY2guaHZt X2RvbWFpbiktPnZwaWNbaXJxID4+IDNdLmludF9vdXRwdXQgKQotICAgICAgICByZXR1cm4gLTE7 Ci0gICAgZWxzZSAKLSAgICAgICAgcmV0dXJuIHB0X2lycV92ZWN0b3IoZWFybGllc3RfcHQsIGh2 bV9pbnRzcmNfbGFwaWMpOworICAgIHJldHVybiBwdF92ZWN0b3I7CiB9CiAKIHN0YXRpYyBzdHJ1 Y3QgcGVyaW9kaWNfdGltZSAqaXNfcHRfaXJxKApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9odm0vaHZtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaAppbmRleCBiNjg3 ZTAzLi42ZWNhZDMzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaApAQCAtMTk1LDYgKzE5NSw3IEBAIHN0 cnVjdCBodm1fZnVuY3Rpb25fdGFibGUgewogICAgIHZvaWQgKCpwcm9jZXNzX2lzcikoaW50IGlz ciwgc3RydWN0IHZjcHUgKnYpOwogICAgIHZvaWQgKCpkZWxpdmVyX3Bvc3RlZF9pbnRyKShzdHJ1 Y3QgdmNwdSAqdiwgdTggdmVjdG9yKTsKICAgICB2b2lkICgqc3luY19waXJfdG9faXJyKShzdHJ1 Y3QgdmNwdSAqdik7CisgICAgYm9vbCAoKnRlc3RfcGlyKShjb25zdCBzdHJ1Y3QgdmNwdSAqdiwg dWludDhfdCB2ZWN0b3IpOwogICAgIHZvaWQgKCpoYW5kbGVfZW9pKSh1OCB2ZWN0b3IpOwogCiAg ICAgLypXYWxrIG5lc3RlZCBwMm0gICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9pcnEuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lycS5oCmluZGV4IDNiNmI0YmQu LmY3NTZjYjUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lycS5oCisrKyBi L3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lycS5oCkBAIC0xODcsOCArMTg3LDE2IEBAIHZvaWQg aHZtX3BjaV9pbnR4X2Fzc2VydChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZGV2aWNl LAogdm9pZCBodm1fcGNpX2ludHhfZGVhc3NlcnQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg aW50IGRldmljZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpbnR4 KTsKIAotLyogTW9kaWZ5IHN0YXRlIG9mIGFuIElTQSBkZXZpY2UncyBJUlEgd2lyZS4gKi8KLXZv aWQgaHZtX2lzYV9pcnFfYXNzZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpc2Ff aXJxKTsKKy8qCisgKiBNb2RpZnkgc3RhdGUgb2YgYW4gSVNBIGRldmljZSdzIElSUSB3aXJlLiBG b3Igc29tZSBjYXNlcywgd2UgYXJlCisgKiBpbnRlcmVzdGVkIGluIHRoZSBpbnRlcnJ1cHQgdmVj dG9yIG9mIHRoZSBpcnEsIGJ1dCBvbmNlIHRoZSBpcnFfbG9jaworICogaXMgcmVsZWFzZWQsIHRo ZSB2ZWN0b3IgbWF5IGJlIGNoYW5nZWQgYnkgb3RoZXJzLiBnZXRfdmVjdG9yKCkgY2FsbGJhY2sK KyAqIGFsbG93cyB1cyB0byBnZXQgdGhlIGludGVycnVwdCB2ZWN0b3IgaW4gdGhlIHByb3RlY3Rp b24gb2YgaXJxX2xvY2suCisgKiBGb3IgbW9zdCBjYXNlcywganVzdCBzZXQgZ2V0X3ZlY3RvciB0 byBOVUxMLgorICovCitpbnQgaHZtX2lzYV9pcnFfYXNzZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGludCBpc2FfaXJxLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpnZXRfdmVj dG9yKShjb25zdCBzdHJ1Y3QgZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZ3NpKSk7CiB2b2lkIGh2bV9pc2FfaXJxX2RlYXNz ZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpc2FfaXJxKTsKIAogLyogTW9kaWZ5 IHN0YXRlIG9mIEdTSXMuICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92 bGFwaWMuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZsYXBpYy5oCmluZGV4IGE2M2ZjZDUu LjIxMmMzNmIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZsYXBpYy5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZsYXBpYy5oCkBAIC0xMTAsNiArMTEwLDcgQEAg c3RhdGljIGlubGluZSB2b2lkIHZsYXBpY19zZXRfcmVnKAogCiBib29sX3QgaXNfdmxhcGljX2x2 dHBjX2VuYWJsZWQoc3RydWN0IHZsYXBpYyAqdmxhcGljKTsKIAorYm9vbCB2bGFwaWNfdGVzdF9p cnEoY29uc3Qgc3RydWN0IHZsYXBpYyAqdmxhcGljLCB1aW50OF90IHZlYyk7CiB2b2lkIHZsYXBp Y19zZXRfaXJxKHN0cnVjdCB2bGFwaWMgKnZsYXBpYywgdWludDhfdCB2ZWMsIHVpbnQ4X3QgdHJp Zyk7CiAKIGludCB2bGFwaWNfaGFzX3BlbmRpbmdfaXJxKHN0cnVjdCB2Y3B1ICp2KTsKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bXguaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL3ZteC92bXguaAppbmRleCA0ODg5YTY0Li42NDkxNDkwIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgvdm14LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vdm14L3ZteC5oCkBAIC0xMDksNiArMTA5LDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IHBp X3Rlc3RfYW5kX3NldF9waXIoaW50IHZlY3Rvciwgc3RydWN0IHBpX2Rlc2MgKnBpX2Rlc2MpCiAg ICAgcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQodmVjdG9yLCBwaV9kZXNjLT5waXIpOwogfQogCitz dGF0aWMgaW5saW5lIGludCBwaV90ZXN0X3BpcihpbnQgdmVjdG9yLCBjb25zdCBzdHJ1Y3QgcGlf ZGVzYyAqcGlfZGVzYykKK3sKKyAgICByZXR1cm4gdGVzdF9iaXQodmVjdG9yLCBwaV9kZXNjLT5w aXIpOworfQorCiBzdGF0aWMgaW5saW5lIGludCBwaV90ZXN0X2FuZF9zZXRfb24oc3RydWN0IHBp X2Rlc2MgKnBpX2Rlc2MpCiB7CiAgICAgcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQoUE9TVEVEX0lO VFJfT04sICZwaV9kZXNjLT5jb250cm9sKTsKLS0gCjEuOC4zLjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK