From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v3 for 4.10] x86/vpt: guarantee the return value of pt_update_irq() set in vIRR or PIR Date: Fri, 20 Oct 2017 08:35:00 +0800 Message-ID: <1508459700-6725-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 , Jun Nakajima , Andrew Cooper , Julien Grall , 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 ZSB0aGUgdmVjdG9yCmJldHdlZW4gdGhlIHR3byBvcGVyYXRpb25zLgoKQlRXLCB0aGUgZmlyc3Qg YXJndW1lbnQgb2YgcGlfdGVzdF9hbmRfc2V0X3BpcigpIHNob3VsZCBiZSB1aW50OF90CmFuZCBJ IHRha2UgdGhpcyBjaGFuY2UgdG8gZml4IGl0LgoKU2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNo YW8uZ2FvQGludGVsLmNvbT4KLS0tClRvIEp1bGllbjoKVGhpcyBwYXRjaCBpcyB0byBmaXggYSBw b3NzaWJsZSBjYXVzZSBvZiBhbiBhc3NlcnRpb24gZmFpbHVyZSByZWxhdGVkIHRvCnBlcmlvZGlj IHRpbWVyIGludGVycnVwdC4gT1NTVEVTVCByZXBvcnRzIHJlZ3Jlc3Npb24gb2NjYXNpb25hbGx5 IHdoZW4gdGhlIGJ1ZwpoYXBwZW5zLiBJIGludGVuZCB0byBtZXJnZSB0aGlzIHBhdGNoIGluIDQu MTAgYW5kIHRoZW4gb2JzZXJ2ZSB3aGV0aGVyCnRoZSBidWcgZGlzYXBwZWFycyBvciBub3QuCgot LS0KcGFzc2VkIHRoZSB0d28gc2ltcGxlIHh0ZiB0ZXN0cyBpbiAKaHR0cHM6Ly9saXN0cy54ZW5w cm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE3LTEwL21zZzAwOTE1Lmh0bWwu Ciwgd2hpY2ggYXJlIGRlc2lnbmVkIHRvIHByb2R1Y2UgdGhlIGFib3ZlIHR3byBjYXNlcy4KCnYz OgotIGNoYW5nZSB0aGUgZmlyc3QgYXJndW1lbnQgb2YgcGlfdGVzdF9waXIoKSB0byB1aW50OF90 Ci0gY2hhbmdlIHRoZSBmaXJzdCBhcmd1bWVudCBvZiBwaV90ZXN0X2FuZF9zZXRfcGlyKCkgdG8g dWludDhfdAotIHJldHVybiAtMSB3aGVuIG5vIGNhbGxiYWNrIGlzIHBhc3NlZCB0byBodm1faXNh X2lycV9hc3NlcnQoKQotIGNoZWNrIGh2bV9pc2FfaXJxX2Fzc2VydCguLiwgdmlvYXBpY19nZXRf dmVjdG9yKSBpbiBjYXNlIHRoZSBjYWxsYmFjayBmYWlsZWQKCnYyOgotIGFkZCBhIGNhbGxiYWNr IHRvIGh2bV9pc2FfaXJxX2Fzc2VydCgpIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24KLSBDb25z dGlmeSB2bGFwaWMgYXJndW1lbnQgb2YgdmxhcGljX3Rlc3RfaXJxKCkKCi0tLQogeGVuL2FyY2gv eDg2L2h2bS9kbS5jICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9odm0vaXJxLmMg ICAgICAgICAgICB8IDExICsrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYvaHZtL3BtdGltZXIuYyAg ICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2h2bS9ydGMuYyAgICAgICAgICAgIHwgIDIgKy0K IHhlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMgICAgICAgICB8IDEyICsrKysrKysrKysrKwogeGVu L2FyY2gveDg2L2h2bS92bXgvdm14LmMgICAgICAgIHwgIDcgKysrKysrKwogeGVuL2FyY2gveDg2 L2h2bS92cHQuYyAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaCAgICAgfCAgMSArCiB4ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9pcnEuaCAgICAgfCAxMiArKysrKysrKysrLS0KIHhlbi9pbmNs dWRlL2FzbS14ODYvaHZtL3ZsYXBpYy5oICB8ICAxICsKIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZt L3ZteC92bXguaCB8ICA3ICsrKysrKy0KIDExIGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMo KyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBi L3hlbi9hcmNoL3g4Ni9odm0vZG0uYwppbmRleCAzMmFkZTk1Li5hNzg3ZjQzIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL2RtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCkBAIC0x NDMsNyArMTQzLDcgQEAgc3RhdGljIGludCBzZXRfaXNhX2lycV9sZXZlbChzdHJ1Y3QgZG9tYWlu ICpkLCB1aW50OF90IGlzYV9pcnEsCiAgICAgICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIGlz YV9pcnEpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDE6Ci0gICAgICAgIGh2bV9pc2FfaXJx X2Fzc2VydChkLCBpc2FfaXJxKTsKKyAgICAgICAgaHZtX2lzYV9pcnFfYXNzZXJ0KGQsIGlzYV9p cnEsIE5VTEwpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4g LUVJTlZBTDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaXJxLmMgYi94ZW4vYXJjaC94 ODYvaHZtL2lycS5jCmluZGV4IGU0MjVkZjkuLjAwNzdmNjggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9odm0vaXJxLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pcnEuYwpAQCAtMTY4LDExICsx NjgsMTMgQEAgdm9pZCBodm1fZ3NpX2RlYXNzZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGludCBnc2kpCiAgICAgc3Bpbl91bmxvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7 CiB9CiAKLXZvaWQgaHZtX2lzYV9pcnFfYXNzZXJ0KAotICAgIHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGludCBpc2FfaXJxKQoraW50IGh2bV9pc2FfaXJxX2Fzc2VydChzdHJ1Y3QgZG9tYWlu ICpkLCB1bnNpZ25lZCBpbnQgaXNhX2lycSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50ICgq Z2V0X3ZlY3RvcikoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGdzaSkpCiB7CiAgICAgc3RydWN0IGh2 bV9pcnEgKmh2bV9pcnEgPSBodm1fZG9tYWluX2lycShkKTsKICAgICB1bnNpZ25lZCBpbnQgZ3Np ID0gaHZtX2lzYV9pcnFfdG9fZ3NpKGlzYV9pcnEpOworICAgIGludCB2ZWN0b3IgPSAtMTsKIAog ICAgIEFTU0VSVChpc2FfaXJxIDw9IDE1KTsKIApAQCAtMTgyLDcgKzE4NCwxMiBAQCB2b2lkIGh2 bV9pc2FfaXJxX2Fzc2VydCgKICAgICAgICAgIChodm1faXJxLT5nc2lfYXNzZXJ0X2NvdW50W2dz aV0rKyA9PSAwKSApCiAgICAgICAgIGFzc2VydF9pcnEoZCwgZ3NpLCBpc2FfaXJxKTsKIAorICAg IGlmICggZ2V0X3ZlY3RvciApCisgICAgICAgIHZlY3RvciA9IGdldF92ZWN0b3IoZCwgZ3NpKTsK KwogICAgIHNwaW5fdW5sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2spOworCisgICAg cmV0dXJuIHZlY3RvcjsKIH0KIAogdm9pZCBodm1faXNhX2lycV9kZWFzc2VydCgKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vcG10aW1lci5jIGIveGVuL2FyY2gveDg2L2h2bS9wbXRpbWVy LmMKaW5kZXggYjcwYzI5OS4uNDM1NjQ3ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9w bXRpbWVyLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9wbXRpbWVyLmMKQEAgLTYxLDcgKzYxLDcg QEAgc3RhdGljIHZvaWQgcG10X3VwZGF0ZV9zY2koUE1UU3RhdGUgKnMpCiAgICAgQVNTRVJUKHNw aW5faXNfbG9ja2VkKCZzLT5sb2NrKSk7CiAKICAgICBpZiAoIGFjcGktPnBtMWFfZW4gJiBhY3Bp LT5wbTFhX3N0cyAmIFNDSV9NQVNLICkKLSAgICAgICAgaHZtX2lzYV9pcnFfYXNzZXJ0KHMtPnZj cHUtPmRvbWFpbiwgU0NJX0lSUSk7CisgICAgICAgIGh2bV9pc2FfaXJxX2Fzc2VydChzLT52Y3B1 LT5kb21haW4sIFNDSV9JUlEsIE5VTEwpOwogICAgIGVsc2UKICAgICAgICAgaHZtX2lzYV9pcnFf ZGVhc3NlcnQocy0+dmNwdS0+ZG9tYWluLCBTQ0lfSVJRKTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9odm0vcnRjLmMgYi94ZW4vYXJjaC94ODYvaHZtL3J0Yy5jCmluZGV4IGJjZmExNjku LmNiNzViOTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vcnRjLmMKKysrIGIveGVuL2Fy Y2gveDg2L2h2bS9ydGMuYwpAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgdm9pZCBydGNfdXBkYXRl X2lycShSVENTdGF0ZSAqcykKICAgICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19DXSB8PSBSVENf SVJRRjsKICAgICBpZiAoIHJ0Y19tb2RlX2lzKHMsIG5vX2FjaykgKQogICAgICAgICBodm1faXNh X2lycV9kZWFzc2VydCh2cnRjX2RvbWFpbihzKSwgUlRDX0lSUSk7Ci0gICAgaHZtX2lzYV9pcnFf YXNzZXJ0KHZydGNfZG9tYWluKHMpLCBSVENfSVJRKTsKKyAgICBodm1faXNhX2lycV9hc3NlcnQo dnJ0Y19kb21haW4ocyksIFJUQ19JUlEsIE5VTEwpOwogfQogCiAvKiBDYWxsZWQgYnkgdGhlIFZQ VCBjb2RlIGFmdGVyIGl0J3MgaW5qZWN0ZWQgYSBQRiBpbnRlcnJ1cHQgZm9yIHVzLgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdmxhcGlj LmMKaW5kZXggNGJmYzUzZS4uNTBmNTNiZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92 bGFwaWMuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZsYXBpYy5jCkBAIC0xMzcsNiArMTM3LDE4 IEBAIHN0YXRpYyB2b2lkIHZsYXBpY19lcnJvcihzdHJ1Y3QgdmxhcGljICp2bGFwaWMsIHVuc2ln bmVkIGludCBlcnJtYXNrKQogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZsYXBpYy0+ZXNy X2xvY2ssIGZsYWdzKTsKIH0KIAorYm9vbCB2bGFwaWNfdGVzdF9pcnEoY29uc3Qgc3RydWN0IHZs YXBpYyAqdmxhcGljLCB1aW50OF90IHZlYykKK3sKKyAgICBpZiAoIHVubGlrZWx5KHZlYyA8IDE2 KSApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICggaHZtX2Z1bmNzLnRlc3RfcGly ICYmCisgICAgICAgICBodm1fZnVuY3MudGVzdF9waXIoY29uc3RfdmxhcGljX3ZjcHUodmxhcGlj KSwgdmVjKSApCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIHZsYXBpY190ZXN0 X3ZlY3Rvcih2ZWMsICZ2bGFwaWMtPnJlZ3MtPmRhdGFbQVBJQ19JUlJdKTsKK30KKwogdm9pZCB2 bGFwaWNfc2V0X2lycShzdHJ1Y3QgdmxhcGljICp2bGFwaWMsIHVpbnQ4X3QgdmVjLCB1aW50OF90 IHRyaWcpCiB7CiAgICAgc3RydWN0IHZjcHUgKnRhcmdldCA9IHZsYXBpY192Y3B1KHZsYXBpYyk7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9o dm0vdm14L3ZteC5jCmluZGV4IGMyMTQ4NzAuLmIxOGNjZWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9odm0vdm14L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC0y MTI1LDYgKzIxMjUsMTEgQEAgc3RhdGljIHZvaWQgdm14X3N5bmNfcGlyX3RvX2lycihzdHJ1Y3Qg dmNwdSAqdikKICAgICAgICAgdmxhcGljX3NldF92ZWN0b3IoaSwgJnZsYXBpYy0+cmVncy0+ZGF0 YVtBUElDX0lSUl0pOwogfQogCitzdGF0aWMgYm9vbCB2bXhfdGVzdF9waXIoY29uc3Qgc3RydWN0 IHZjcHUgKnYsIHVpbnQ4X3QgdmVjKQoreworICAgIHJldHVybiBwaV90ZXN0X3Bpcih2ZWMsICZ2 LT5hcmNoLmh2bV92bXgucGlfZGVzYyk7Cit9CisKIHN0YXRpYyB2b2lkIHZteF9oYW5kbGVfZW9p KHU4IHZlY3RvcikKIHsKICAgICB1bnNpZ25lZCBsb25nIHN0YXR1czsKQEAgLTIzNTIsNiArMjM1 Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlIF9faW5pdGRhdGEgdm14X2Z1 bmN0aW9uX3RhYmxlID0gewogICAgIC5wcm9jZXNzX2lzciAgICAgICAgICA9IHZteF9wcm9jZXNz X2lzciwKICAgICAuZGVsaXZlcl9wb3N0ZWRfaW50ciAgPSB2bXhfZGVsaXZlcl9wb3N0ZWRfaW50 ciwKICAgICAuc3luY19waXJfdG9faXJyICAgICAgPSB2bXhfc3luY19waXJfdG9faXJyLAorICAg IC50ZXN0X3BpciAgICAgICAgICAgICA9IHZteF90ZXN0X3BpciwKICAgICAuaGFuZGxlX2VvaSAg ICAgICAgICAgPSB2bXhfaGFuZGxlX2VvaSwKICAgICAubmh2bV9oYXBfd2Fsa19MMV9wMm0gPSBu dm14X2hhcF93YWxrX0wxX3AybSwKICAgICAuZW5hYmxlX21zcl9pbnRlcmNlcHRpb24gPSB2bXhf ZW5hYmxlX21zcl9pbnRlcmNlcHRpb24sCkBAIC0yNDk5LDYgKzI1MDUsNyBAQCBjb25zdCBzdHJ1 Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlICogX19pbml0IHN0YXJ0X3ZteCh2b2lkKQogICAgIHsKICAg ICAgICAgdm14X2Z1bmN0aW9uX3RhYmxlLmRlbGl2ZXJfcG9zdGVkX2ludHIgPSBOVUxMOwogICAg ICAgICB2bXhfZnVuY3Rpb25fdGFibGUuc3luY19waXJfdG9faXJyID0gTlVMTDsKKyAgICAgICAg dm14X2Z1bmN0aW9uX3RhYmxlLnRlc3RfcGlyID0gTlVMTDsKICAgICB9CiAKICAgICBpZiAoIGNw dV9oYXNfdm14X3RzY19zY2FsaW5nICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdnB0 LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZwdC5jCmluZGV4IDM4NDExNDAuLjE4MWY0Y2IgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdnB0LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92cHQu YwpAQCAtMjUyLDcgKzI1Miw3IEBAIGludCBwdF91cGRhdGVfaXJxKHN0cnVjdCB2Y3B1ICp2KQog ICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQgPSAmdi0+YXJjaC5odm1fdmNwdS50bV9saXN0Owog ICAgIHN0cnVjdCBwZXJpb2RpY190aW1lICpwdCwgKnRlbXAsICplYXJsaWVzdF9wdDsKICAgICB1 aW50NjRfdCBtYXhfbGFnOwotICAgIGludCBpcnEsIGlzX2xhcGljOworICAgIGludCBpcnEsIGlz X2xhcGljLCBwdF92ZWN0b3I7CiAKICAgICBzcGluX2xvY2soJnYtPmFyY2guaHZtX3ZjcHUudG1f bG9jayk7CiAKQEAgLTI5MiwyNSArMjkyLDM4IEBAIGludCBwdF91cGRhdGVfaXJxKHN0cnVjdCB2 Y3B1ICp2KQogCiAgICAgc3Bpbl91bmxvY2soJnYtPmFyY2guaHZtX3ZjcHUudG1fbG9jayk7CiAK KyAgICAvKgorICAgICAqIElmIHBlcmlvZGljIHRpbWVyIGludGVycnV0IGlzIGhhbmRsZWQgYnkg bGFwaWMsIGl0cyB2ZWN0b3IgaW4KKyAgICAgKiBJUlIgaXMgcmV0dXJuZWQgYW5kIHVzZWQgdG8g c2V0IGVvaV9leGl0X2JpdG1hcCBmb3IgdmlydHVhbAorICAgICAqIGludGVycnVwdCBkZWxpdmVy eSBjYXNlLiBPdGhlcndpc2UgcmV0dXJuIC0xIHRvIGRvIG5vdGhpbmcuCisgICAgICovCiAgICAg aWYgKCBpc19sYXBpYyApCisgICAgewogICAgICAgICB2bGFwaWNfc2V0X2lycSh2Y3B1X3ZsYXBp Yyh2KSwgaXJxLCAwKTsKKyAgICAgICAgcHRfdmVjdG9yID0gaXJxOworICAgIH0KICAgICBlbHNl CiAgICAgewogICAgICAgICBodm1faXNhX2lycV9kZWFzc2VydCh2LT5kb21haW4sIGlycSk7Ci0g ICAgICAgIGh2bV9pc2FfaXJxX2Fzc2VydCh2LT5kb21haW4sIGlycSk7CisgICAgICAgIGlmICgg cGxhdGZvcm1fbGVnYWN5X2lycShpcnEpICYmIHZsYXBpY19hY2NlcHRfcGljX2ludHIodikgJiYK KyAgICAgICAgICAgICB2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi52cGljW2lycSA+PiAzXS5p bnRfb3V0cHV0ICkKKyAgICAgICAgeworICAgICAgICAgICAgaHZtX2lzYV9pcnFfYXNzZXJ0KHYt PmRvbWFpbiwgaXJxLCBOVUxMKTsKKyAgICAgICAgICAgIHB0X3ZlY3RvciA9IC0xOworICAgICAg ICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgcHRfdmVjdG9yID0gaHZt X2lzYV9pcnFfYXNzZXJ0KHYtPmRvbWFpbiwgaXJxLCB2aW9hcGljX2dldF92ZWN0b3IpOworICAg ICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGh2bV9pc2FfaXJxX2Fzc2VydCBtYXkgbm90IHNl dCB0aGUgY29ycmVzcG9uZGluZyBiaXQgaW4gdklSUgorICAgICAgICAgICAgICogd2hlbiBtYXNr IGZpZWxkIG9mIElPQVBJQyBSVEUgaXMgc2V0LiBDaGVjayBpdCBhZ2Fpbi4KKyAgICAgICAgICAg ICAqLworICAgICAgICAgICAgaWYgKCBwdF92ZWN0b3IgPCAwIHx8ICF2bGFwaWNfdGVzdF9pcnEo dmNwdV92bGFwaWModiksIHB0X3ZlY3RvcikgKQorICAgICAgICAgICAgICAgIHB0X3ZlY3RvciA9 IC0xOworICAgICAgICB9CiAgICAgfQogCi0gICAgLyoKLSAgICAgKiBJZiBwZXJpb2RpYyB0aW1l ciBpbnRlcnJ1dCBpcyBoYW5kbGVkIGJ5IGxhcGljLCBpdHMgdmVjdG9yIGluCi0gICAgICogSVJS IGlzIHJldHVybmVkIGFuZCB1c2VkIHRvIHNldCBlb2lfZXhpdF9iaXRtYXAgZm9yIHZpcnR1YWwK LSAgICAgKiBpbnRlcnJ1cHQgZGVsaXZlcnkgY2FzZS4gT3RoZXJ3aXNlIHJldHVybiAtMSB0byBk byBub3RoaW5nLiAgCi0gICAgICovIAotICAgIGlmICggIWlzX2xhcGljICYmCi0gICAgICAgICBw bGF0Zm9ybV9sZWdhY3lfaXJxKGlycSkgJiYgdmxhcGljX2FjY2VwdF9waWNfaW50cih2KSAmJgot ICAgICAgICAgKCZ2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbiktPnZwaWNbaXJxID4+IDNdLmlu dF9vdXRwdXQgKQotICAgICAgICByZXR1cm4gLTE7Ci0gICAgZWxzZSAKLSAgICAgICAgcmV0dXJu IHB0X2lycV92ZWN0b3IoZWFybGllc3RfcHQsIGh2bV9pbnRzcmNfbGFwaWMpOworICAgIHJldHVy biBwdF92ZWN0b3I7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgcGVyaW9kaWNfdGltZSAqaXNfcHRfaXJx KApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmggYi94ZW4vaW5jbHVk ZS9hc20teDg2L2h2bS9odm0uaAppbmRleCBiNjg3ZTAzLi42ZWNhZDMzIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS9odm0uaApAQCAtMTk1LDYgKzE5NSw3IEBAIHN0cnVjdCBodm1fZnVuY3Rpb25fdGFibGUgewog ICAgIHZvaWQgKCpwcm9jZXNzX2lzcikoaW50IGlzciwgc3RydWN0IHZjcHUgKnYpOwogICAgIHZv aWQgKCpkZWxpdmVyX3Bvc3RlZF9pbnRyKShzdHJ1Y3QgdmNwdSAqdiwgdTggdmVjdG9yKTsKICAg ICB2b2lkICgqc3luY19waXJfdG9faXJyKShzdHJ1Y3QgdmNwdSAqdik7CisgICAgYm9vbCAoKnRl c3RfcGlyKShjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWludDhfdCB2ZWN0b3IpOwogICAgIHZvaWQg KCpoYW5kbGVfZW9pKSh1OCB2ZWN0b3IpOwogCiAgICAgLypXYWxrIG5lc3RlZCBwMm0gICovCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pcnEuaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2lycS5oCmluZGV4IDNiNmI0YmQuLmY3NTZjYjUgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL2lycS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2ly cS5oCkBAIC0xODcsOCArMTg3LDE2IEBAIHZvaWQgaHZtX3BjaV9pbnR4X2Fzc2VydChzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZGV2aWNlLAogdm9pZCBodm1fcGNpX2ludHhfZGVhc3Nl cnQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGRldmljZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpbnR4KTsKIAotLyogTW9kaWZ5IHN0YXRlIG9mIGFu IElTQSBkZXZpY2UncyBJUlEgd2lyZS4gKi8KLXZvaWQgaHZtX2lzYV9pcnFfYXNzZXJ0KHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpc2FfaXJxKTsKKy8qCisgKiBNb2RpZnkgc3RhdGUg b2YgYW4gSVNBIGRldmljZSdzIElSUSB3aXJlLiBGb3Igc29tZSBjYXNlcywgd2UgYXJlCisgKiBp bnRlcmVzdGVkIGluIHRoZSBpbnRlcnJ1cHQgdmVjdG9yIG9mIHRoZSBpcnEsIGJ1dCBvbmNlIHRo ZSBpcnFfbG9jaworICogaXMgcmVsZWFzZWQsIHRoZSB2ZWN0b3IgbWF5IGJlIGNoYW5nZWQgYnkg b3RoZXJzLiBnZXRfdmVjdG9yKCkgY2FsbGJhY2sKKyAqIGFsbG93cyB1cyB0byBnZXQgdGhlIGlu dGVycnVwdCB2ZWN0b3IgaW4gdGhlIHByb3RlY3Rpb24gb2YgaXJxX2xvY2suCisgKiBGb3IgbW9z dCBjYXNlcywganVzdCBzZXQgZ2V0X3ZlY3RvciB0byBOVUxMLgorICovCitpbnQgaHZtX2lzYV9p cnFfYXNzZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpc2FfaXJxLAorICAgICAg ICAgICAgICAgICAgICAgICBpbnQgKCpnZXRfdmVjdG9yKShjb25zdCBzdHJ1Y3QgZG9tYWluICpk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg Z3NpKSk7CiB2b2lkIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGludCBpc2FfaXJxKTsKIAogLyogTW9kaWZ5IHN0YXRlIG9mIEdTSXMuICovCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bGFwaWMuaCBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL3ZsYXBpYy5oCmluZGV4IGE2M2ZjZDUuLjIxMmMzNmIgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL3ZsYXBpYy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt L3ZsYXBpYy5oCkBAIC0xMTAsNiArMTEwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHZsYXBpY19z ZXRfcmVnKAogCiBib29sX3QgaXNfdmxhcGljX2x2dHBjX2VuYWJsZWQoc3RydWN0IHZsYXBpYyAq dmxhcGljKTsKIAorYm9vbCB2bGFwaWNfdGVzdF9pcnEoY29uc3Qgc3RydWN0IHZsYXBpYyAqdmxh cGljLCB1aW50OF90IHZlYyk7CiB2b2lkIHZsYXBpY19zZXRfaXJxKHN0cnVjdCB2bGFwaWMgKnZs YXBpYywgdWludDhfdCB2ZWMsIHVpbnQ4X3QgdHJpZyk7CiAKIGludCB2bGFwaWNfaGFzX3BlbmRp bmdfaXJxKHN0cnVjdCB2Y3B1ICp2KTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv aHZtL3ZteC92bXguaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bXguaAppbmRleCA0 ODg5YTY0Li43MzQxY2IxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgv dm14LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZteC5oCkBAIC0xMDQsMTEg KzEwNCwxNiBAQCB2b2lkIHZteF91cGRhdGVfc2Vjb25kYXJ5X2V4ZWNfY29udHJvbChzdHJ1Y3Qg dmNwdSAqdik7CiAKICNkZWZpbmUgUE9TVEVEX0lOVFJfT04gIDAKICNkZWZpbmUgUE9TVEVEX0lO VFJfU04gIDEKLXN0YXRpYyBpbmxpbmUgaW50IHBpX3Rlc3RfYW5kX3NldF9waXIoaW50IHZlY3Rv ciwgc3RydWN0IHBpX2Rlc2MgKnBpX2Rlc2MpCitzdGF0aWMgaW5saW5lIGludCBwaV90ZXN0X2Fu ZF9zZXRfcGlyKHVpbnQ4X3QgdmVjdG9yLCBzdHJ1Y3QgcGlfZGVzYyAqcGlfZGVzYykKIHsKICAg ICByZXR1cm4gdGVzdF9hbmRfc2V0X2JpdCh2ZWN0b3IsIHBpX2Rlc2MtPnBpcik7CiB9CiAKK3N0 YXRpYyBpbmxpbmUgaW50IHBpX3Rlc3RfcGlyKHVpbnQ4X3QgdmVjdG9yLCBjb25zdCBzdHJ1Y3Qg cGlfZGVzYyAqcGlfZGVzYykKK3sKKyAgICByZXR1cm4gdGVzdF9iaXQodmVjdG9yLCBwaV9kZXNj LT5waXIpOworfQorCiBzdGF0aWMgaW5saW5lIGludCBwaV90ZXN0X2FuZF9zZXRfb24oc3RydWN0 IHBpX2Rlc2MgKnBpX2Rlc2MpCiB7CiAgICAgcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQoUE9TVEVE X0lOVFJfT04sICZwaV9kZXNjLT5jb250cm9sKTsKLS0gCjEuOC4zLjEKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK