From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH RFC v2 11/12] x86: modify interrupt handlers to support stack switching Date: Mon, 22 Jan 2018 13:32:55 +0100 Message-ID: <20180122123256.1431-12-jgross@suse.com> References: <20180122123256.1431-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1edbJP-0000cW-EQ for xen-devel@lists.xenproject.org; Mon, 22 Jan 2018 12:34:55 +0000 In-Reply-To: <20180122123256.1431-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Juergen Gross , wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, dfaggioli@suse.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org TW9kaWZ5IHRoZSBpbnRlcnJ1cHQgaGFuZGxlcnMgdG8gc3dpdGNoIHN0YWNrcyBvbiBpbnRlcnJ1 cHQgZW50cnkgaW4KY2FzZSB0aGV5IGFyZSBydW5uaW5nIG9uIGEgcGVyLXZjcHUgc3RhY2suIFNh bWUgYXBwbGllcyB0byByZXR1cm5pbmcKdG8gdGhlIGd1ZXN0OiBpbiBjYXNlIHRoZSB0byBiZSBs b2FkZWQgY29udGV4dCBpcyBsb2NhdGVkIG9uIGEKcGVyLXZjcHUgc3RhY2sgc3dpdGNoIHRvIHRo aXMgb25lIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIGd1ZXN0LgoKU2lnbmVkLW9mZi1ieTogSnVl cmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvYXNt LW9mZnNldHMuYyAgfCAgNCArKysrCiB4ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5T IHwgIDUgKysrKy0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUyAgICAgICAgfCAxNSArKysr KysrKysrKysrLS0KIHhlbi9jb21tb24vd2FpdC5jICAgICAgICAgICAgICAgICAgfCAgOCArKysr LS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hc21fZGVmbnMuaCAgICB8IDE5ICsrKysrKysrKysr KysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oICAgICAgfCAxMCArKysrKysr KystCiA2IGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jIGIveGVuL2FyY2gv eDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCmluZGV4IGUxMzZhZjZiOTkuLjBkYTc1NmU3YWYgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYworKysgYi94ZW4vYXJj aC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKQEAgLTEzNyw2ICsxMzcsMTAgQEAgdm9pZCBfX2R1 bW15X18odm9pZCkKICAgICBPRkZTRVQoQ1BVSU5GT19wcm9jZXNzb3JfaWQsIHN0cnVjdCBjcHVf aW5mbywgcHJvY2Vzc29yX2lkKTsKICAgICBPRkZTRVQoQ1BVSU5GT19jdXJyZW50X3ZjcHUsIHN0 cnVjdCBjcHVfaW5mbywgY3VycmVudF92Y3B1KTsKICAgICBPRkZTRVQoQ1BVSU5GT19jcjQsIHN0 cnVjdCBjcHVfaW5mbywgY3I0KTsKKyAgICBPRkZTRVQoQ1BVSU5GT19zdGFja19ib3R0b21fY3B1 LCBzdHJ1Y3QgY3B1X2luZm8sIHN0YWNrX2JvdHRvbV9jcHUpOworICAgIE9GRlNFVChDUFVJTkZP X2ZsYWdzLCBzdHJ1Y3QgY3B1X2luZm8sIGZsYWdzKTsKKyAgICBERUZJTkUoQVNNX09OX1ZDUFVT VEFDSywgT05fVkNQVVNUQUNLKTsKKyAgICBERUZJTkUoQVNNX1ZDUFVTVEFDS19BQ1RJVkUsIFZD UFVTVEFDS19BQ1RJVkUpOwogICAgIERFRklORShDUFVJTkZPX3NpemVvZiwgc2l6ZW9mKHN0cnVj dCBjcHVfaW5mbykpOwogICAgIEJMQU5LKCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94 ODZfNjQvY29tcGF0L2VudHJ5LlMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5T CmluZGV4IGFiZjNmY2FlNDguLmI4ZDc0ZTgzZGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94 ODZfNjQvY29tcGF0L2VudHJ5LlMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50 cnkuUwpAQCAtMTksNiArMTksNyBAQCBFTlRSWShlbnRyeV9pbnQ4MikKICAgICAgICAgbW92bCAg JEhZUEVSQ0FMTF9WRUNUT1IsIDQoJXJzcCkKICAgICAgICAgU0FWRV9BTEwgY29tcGF0PTEgLyog RFBMMSBnYXRlLCByZXN0cmljdGVkIHRvIDMyYml0IFBWIGd1ZXN0cyBvbmx5LiAqLwogICAgICAg ICBtb3YgICAlcnNwLCAlcmRpCisgICAgICAgIFNXSVRDSF9GUk9NX1ZDUFVfU1RBQ0sKICAgICAg ICAgQ1I0X1BWMzJfUkVTVE9SRQogCiAgICAgICAgIEdFVF9DVVJSRU5UKGJ4KQpAQCAtMTA5LDYg KzExMCw3IEBAIGNvbXBhdF9wcm9jZXNzX3RyYXA6CiAvKiAlcmJ4OiBzdHJ1Y3QgdmNwdSwgaW50 ZXJydXB0cyBkaXNhYmxlZCAqLwogRU5UUlkoY29tcGF0X3Jlc3RvcmVfYWxsX2d1ZXN0KQogICAg ICAgICBBU1NFUlRfSU5URVJSVVBUU19ESVNBQkxFRAorICAgICAgICBTV0lUQ0hfVE9fVkNQVV9T VEFDSwogICAgICAgICBtb3YgICAkfihYODZfRUZMQUdTX0lPUEx8WDg2X0VGTEFHU19OVHxYODZf RUZMQUdTX1ZNKSwlcjExZAogICAgICAgICBhbmQgICBVUkVHU19lZmxhZ3MoJXJzcCksJXIxMWQK IC5MY3I0X29yaWc6CkBAIC0xOTUsNyArMTk3LDYgQEAgRU5UUlkoY29tcGF0X3Bvc3RfaGFuZGxl X2V4Y2VwdGlvbikKIAogLyogU2VlIGxzdGFyX2VudGVyIGZvciBlbnRyeSByZWdpc3RlciBzdGF0 ZS4gKi8KIEVOVFJZKGNzdGFyX2VudGVyKQotICAgICAgICBzdGkKICAgICAgICAgQ1I0X1BWMzJf UkVTVE9SRQogICAgICAgICBtb3ZxICA4KCVyc3ApLCVyYXggLyogUmVzdG9yZSAlcmF4LiAqLwog ICAgICAgICBtb3ZxICAkRkxBVF9LRVJORUxfU1MsOCglcnNwKQpAQCAtMjA2LDYgKzIwNyw4IEBA IEVOVFJZKGNzdGFyX2VudGVyKQogICAgICAgICBtb3ZsICAkVFJBUF9zeXNjYWxsLCA0KCVyc3Ap CiAgICAgICAgIFNBVkVfQUxMCiAgICAgICAgIG1vdnEgICVyc3AsICVyZGkKKyAgICAgICAgU1dJ VENIX0ZST01fVkNQVV9TVEFDSworICAgICAgICBzdGkKICAgICAgICAgR0VUX0NVUlJFTlQoYngp CiAgICAgICAgIG1vdnEgIFZDUFVfZG9tYWluKCVyYngpLCVyY3gKICAgICAgICAgY21wYiAgJDAs RE9NQUlOX2lzXzMyYml0X3B2KCVyY3gpCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0 L2VudHJ5LlMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKaW5kZXggZjc0MTJiODdjMi4u OTkxYTg3OTlhOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCisrKyBi L3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUwpAQCAtMzcsNiArMzcsNyBAQCBFTlRSWShzd2l0 Y2hfdG9fa2VybmVsKQogLyogJXJieDogc3RydWN0IHZjcHUsIGludGVycnVwdHMgZGlzYWJsZWQg Ki8KIHJlc3RvcmVfYWxsX2d1ZXN0OgogICAgICAgICBBU1NFUlRfSU5URVJSVVBUU19ESVNBQkxF RAorICAgICAgICBTV0lUQ0hfVE9fVkNQVV9TVEFDSwogICAgICAgICBSRVNUT1JFX0FMTAogICAg ICAgICB0ZXN0dyAkVFJBUF9zeXNjYWxsLDQoJXJzcCkKICAgICAgICAganogICAgaXJldF9leGl0 X3RvX2d1ZXN0CkBAIC03MSw2ICs3Miw3IEBAIGlyZXRfZXhpdF90b19ndWVzdDoKICAgICAgICAg QUxJR04KIC8qIE5vIHNwZWNpYWwgcmVnaXN0ZXIgYXNzdW1wdGlvbnMuICovCiByZXN0b3JlX2Fs bF94ZW46CisgICAgICAgIFNXSVRDSF9UT19WQ1BVX1NUQUNLCiAgICAgICAgIFJFU1RPUkVfQUxM IGFkaj04CiAgICAgICAgIGlyZXRxCiAKQEAgLTkxLDcgKzkzLDYgQEAgcmVzdG9yZV9hbGxfeGVu OgogICogJXNzIG11c3QgYmUgc2F2ZWQgaW50byB0aGUgc3BhY2UgbGVmdCBieSB0aGUgdHJhbXBv bGluZS4KICAqLwogRU5UUlkobHN0YXJfZW50ZXIpCi0gICAgICAgIHN0aQogICAgICAgICBtb3Zx ICA4KCVyc3ApLCVyYXggLyogUmVzdG9yZSAlcmF4LiAqLwogICAgICAgICBtb3ZxICAkRkxBVF9L RVJORUxfU1MsOCglcnNwKQogICAgICAgICBwdXNocSAlcjExCkBAIC0xMDEsNiArMTAyLDggQEAg RU5UUlkobHN0YXJfZW50ZXIpCiAgICAgICAgIG1vdmwgICRUUkFQX3N5c2NhbGwsIDQoJXJzcCkK ICAgICAgICAgU0FWRV9BTEwKICAgICAgICAgbW92ICAgJXJzcCwgJXJkaQorICAgICAgICBTV0lU Q0hfRlJPTV9WQ1BVX1NUQUNLCisgICAgICAgIHN0aQogICAgICAgICBHRVRfQ1VSUkVOVChieCkK ICAgICAgICAgdGVzdGIgJFRGX2tlcm5lbF9tb2RlLFZDUFVfdGhyZWFkX2ZsYWdzKCVyYngpCiAg ICAgICAgIGp6ICAgIHN3aXRjaF90b19rZXJuZWwKQEAgLTE4OSw3ICsxOTIsNiBAQCBwcm9jZXNz X3RyYXA6CiAgICAgICAgIGptcCAgdGVzdF9hbGxfZXZlbnRzCiAKIEVOVFJZKHN5c2VudGVyX2Vu dHJ5KQotICAgICAgICBzdGkKICAgICAgICAgcHVzaHEgJEZMQVRfVVNFUl9TUwogICAgICAgICBw dXNocSAkMAogICAgICAgICBwdXNoZnEKQEAgLTIwMSw2ICsyMDMsOCBAQCBHTE9CQUwoc3lzZW50 ZXJfZWZsYWdzX3NhdmVkKQogICAgICAgICBtb3ZsICAkVFJBUF9zeXNjYWxsLCA0KCVyc3ApCiAg ICAgICAgIFNBVkVfQUxMCiAgICAgICAgIG1vdnEgICVyc3AsICVyZGkKKyAgICAgICAgU1dJVENI X0ZST01fVkNQVV9TVEFDSworICAgICAgICBzdGkKICAgICAgICAgR0VUX0NVUlJFTlQoYngpCiAg ICAgICAgIGNtcGIgICQwLFZDUFVfc3lzZW50ZXJfZGlzYWJsZXNfZXZlbnRzKCVyYngpCiAgICAg ICAgIG1vdnEgIFZDUFVfc3lzZW50ZXJfYWRkciglcmJ4KSwlcmF4CkBAIC0yMzcsNiArMjQxLDcg QEAgRU5UUlkoaW50ODBfZGlyZWN0X3RyYXApCiAgICAgICAgIG1vdmwgICQweDgwLCA0KCVyc3Ap CiAgICAgICAgIFNBVkVfQUxMCiAgICAgICAgIG1vdiAgICVyc3AsICVyZGkKKyAgICAgICAgU1dJ VENIX0ZST01fVkNQVV9TVEFDSwogCiAgICAgICAgIGNtcGIgICQwLHVudHJ1c3RlZF9tc2koJXJp cCkKIFVOTElLRUxZX1NUQVJUKG5lLCBtc2lfY2hlY2spCkBAIC00MDgsNiArNDEzLDcgQEAgRU5U UlkoZG9tX2NyYXNoX3N5bmNfZXh0YWJsZSkKIEVOVFJZKGNvbW1vbl9pbnRlcnJ1cHQpCiAgICAg ICAgIFNBVkVfQUxMIENMQUMKICAgICAgICAgbW92cSAlcnNwLCVyZGkKKyAgICAgICAgU1dJVENI X0ZST01fVkNQVV9TVEFDSwogICAgICAgICBDUjRfUFYzMl9SRVNUT1JFCiAgICAgICAgIHB1c2hx ICVyZGkKICAgICAgICAgY2FsbHEgZG9fSVJRCkBAIC00MzAsNiArNDM2LDcgQEAgRU5UUlkocGFn ZV9mYXVsdCkKIEdMT0JBTChoYW5kbGVfZXhjZXB0aW9uKQogICAgICAgICBTQVZFX0FMTCBDTEFD CiAgICAgICAgIG1vdnEgICVyc3AsICVyZGkKKyAgICAgICAgU1dJVENIX0ZST01fVkNQVV9TVEFD SwogaGFuZGxlX2V4Y2VwdGlvbl9zYXZlZDoKICAgICAgICAgR0VUX0NVUlJFTlQoYngpCiAgICAg ICAgIHRlc3RiICRYODZfRUZMQUdTX0lGPj44LFVSRUdTX2VmbGFncysxKCVyZGkpCkBAIC02MDcs NiArNjE0LDcgQEAgRU5UUlkoZG91YmxlX2ZhdWx0KQogICAgICAgICAvKiBTZXQgQUMgdG8gcmVk dWNlIGNoYW5jZSBvZiBmdXJ0aGVyIFNNQVAgZmF1bHRzICovCiAgICAgICAgIFNBVkVfQUxMIFNU QUMKICAgICAgICAgbW92cSAgJXJzcCwlcmRpCisgICAgICAgIFNXSVRDSF9GUk9NX1ZDUFVfU1RB Q0tfSVNUCiAgICAgICAgIGNhbGwgIGRvX2RvdWJsZV9mYXVsdAogICAgICAgICBCVUcgICAvKiBk b19kb3VibGVfZmF1bHQoKSBzaG91bGRuJ3QgcmV0dXJuLiAqLwogCkBAIC02MTUsNyArNjIzLDkg QEAgRU5UUlkoZWFybHlfcGFnZV9mYXVsdCkKICAgICAgICAgbW92bCAgJFRSQVBfcGFnZV9mYXVs dCw0KCVyc3ApCiAgICAgICAgIFNBVkVfQUxMCiAgICAgICAgIG1vdnEgICVyc3AsJXJkaQorICAg ICAgICBTV0lUQ0hfRlJPTV9WQ1BVX1NUQUNLCiAgICAgICAgIGNhbGwgIGRvX2Vhcmx5X3BhZ2Vf ZmF1bHQKKyAgICAgICAgbW92cSAgJXJzcCwgJXJkaQogICAgICAgICBqbXAgICByZXN0b3JlX2Fs bF94ZW4KICAgICAgICAgLnBvcHNlY3Rpb24KIApAQCAtNjI1LDYgKzYzNSw3IEBAIEVOVFJZKG5t aSkKIGhhbmRsZV9pc3RfZXhjZXB0aW9uOgogICAgICAgICBTQVZFX0FMTCBDTEFDCiAgICAgICAg IG1vdnEgICVyc3AsICVyZGkKKyAgICAgICAgU1dJVENIX0ZST01fVkNQVV9TVEFDS19JU1QKICAg ICAgICAgQ1I0X1BWMzJfUkVTVE9SRQogICAgICAgICBtb3ZxICAlcmRpLCVyZHgKICAgICAgICAg bW92cSAgJXJkaSwlcmJ4CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3dhaXQuYyBiL3hlbi9jb21t b24vd2FpdC5jCmluZGV4IGE1N2JjMTBkNjEuLmZiYjVkOTk2ZTUgMTAwNjQ0Ci0tLSBhL3hlbi9j b21tb24vd2FpdC5jCisrKyBiL3hlbi9jb21tb24vd2FpdC5jCkBAIC0xMjIsMTAgKzEyMiwxMCBA QCB2b2lkIHdha2VfdXBfYWxsKHN0cnVjdCB3YWl0cXVldWVfaGVhZCAqd3EpCiAKIHN0YXRpYyB2 b2lkIF9fcHJlcGFyZV90b193YWl0KHN0cnVjdCB3YWl0cXVldWVfdmNwdSAqd3F2KQogewotICAg IHN0cnVjdCBjcHVfaW5mbyAqY3B1X2luZm8gPSBnZXRfY3B1X2luZm8oKTsKKyAgICBzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqdXNlcl9yZWdzID0gZ3Vlc3RfY3B1X3VzZXJfcmVncygpOwogICAgIHN0 cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsKICAgICB1bnNpZ25lZCBsb25nIGR1bW15OwotICAg IHUzMiBlbnRyeV92ZWN0b3IgPSBjcHVfaW5mby0+Z3Vlc3RfY3B1X3VzZXJfcmVncy5lbnRyeV92 ZWN0b3I7CisgICAgdTMyIGVudHJ5X3ZlY3RvciA9IHVzZXJfcmVncy0+ZW50cnlfdmVjdG9yOwog CiAgICAgQVNTRVJUKHdxdi0+ZXNwID09IDApOwogCkBAIC0xNjAsNyArMTYwLDcgQEAgc3RhdGlj IHZvaWQgX19wcmVwYXJlX3RvX3dhaXQoc3RydWN0IHdhaXRxdWV1ZV92Y3B1ICp3cXYpCiAgICAg ICAgICJwb3AgJSVyMTE7IHBvcCAlJXIxMDsgcG9wICUlcjk7ICBwb3AgJSVyODsiCiAgICAgICAg ICJwb3AgJSVyYnA7IHBvcCAlJXJkeDsgcG9wICUlcmJ4OyBwb3AgJSVyYXgiCiAgICAgICAgIDog Ij0mUyIgKHdxdi0+ZXNwKSwgIj0mYyIgKGR1bW15KSwgIj0mRCIgKGR1bW15KQotICAgICAgICA6 ICJpIiAoUEFHRV9TSVpFKSwgIjAiICgwKSwgIjEiIChjcHVfaW5mbyksICIyIiAod3F2LT5zdGFj aykKKyAgICAgICAgOiAiaSIgKFBBR0VfU0laRSksICIwIiAoMCksICIxIiAodXNlcl9yZWdzKSwg IjIiICh3cXYtPnN0YWNrKQogICAgICAgICA6ICJtZW1vcnkiICk7CiAKICAgICBpZiAoIHVubGlr ZWx5KHdxdi0+ZXNwID09IDApICkKQEAgLTE2OSw3ICsxNjksNyBAQCBzdGF0aWMgdm9pZCBfX3By ZXBhcmVfdG9fd2FpdChzdHJ1Y3Qgd2FpdHF1ZXVlX3ZjcHUgKndxdikKICAgICAgICAgZG9tYWlu X2NyYXNoX3N5bmNocm9ub3VzKCk7CiAgICAgfQogCi0gICAgY3B1X2luZm8tPmd1ZXN0X2NwdV91 c2VyX3JlZ3MuZW50cnlfdmVjdG9yID0gZW50cnlfdmVjdG9yOworICAgIHVzZXJfcmVncy0+ZW50 cnlfdmVjdG9yID0gZW50cnlfdmVjdG9yOwogfQogCiBzdGF0aWMgdm9pZCBfX2ZpbmlzaF93YWl0 KHN0cnVjdCB3YWl0cXVldWVfdmNwdSAqd3F2KQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9hc21fZGVmbnMuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYXNtX2RlZm5zLmgKaW5kZXgg YWU5ZmVmNzQ1MC4uZTc1OTcyNmE0YiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9h c21fZGVmbnMuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FzbV9kZWZucy5oCkBAIC0xMTYs NiArMTE2LDI1IEBAIHZvaWQgcmV0X2Zyb21faW50cih2b2lkKTsKICAgICAgICAgR0VUX1NUQUNL X0VORChyZWcpOyAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBfX0dFVF9DVVJSRU5U KHJlZykKIAorI2RlZmluZSBTV0lUQ0hfRlJPTV9WQ1BVX1NUQUNLICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgR0VUX1NUQUNLX0VORChheCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHRl c3RiICRBU01fT05fVkNQVVNUQUNLLCBTVEFDS19DUFVJTkZPX0ZJRUxEKGZsYWdzKSglcmF4KTsg ICAgICAgXAorICAgICAgICBqeiAgICAxZjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbW92cSAgU1RBQ0tfQ1BVSU5GT19G SUVMRChzdGFja19ib3R0b21fY3B1KSglcmF4KSwgJXJzcDsgICAgICAgICBcCisxOgorCisjZGVm aW5lIFNXSVRDSF9GUk9NX1ZDUFVfU1RBQ0tfSVNUICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICBHRVRfU1RBQ0tfRU5EKGF4KTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdGVzdGIgJEFTTV9PTl9W Q1BVU1RBQ0ssIFNUQUNLX0NQVUlORk9fRklFTEQoZmxhZ3MpKCVyYXgpOyAgICAgICBcCisgICAg ICAgIGp6ICAgIDFmOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICBzdWJxICAkKENQVUlORk9fc2l6ZW9mIC0gMSksICVyYXg7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgYWRkcSAgQ1BVSU5GT19z dGFja19ib3R0b21fY3B1KCVyYXgpLCAlcnNwOyAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgIHN1YnEgICVyYXgsICVyc3A7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorMToKKworI2RlZmluZSBTV0lUQ0hfVE9fVkNQVV9TVEFDSyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbW92cSAgJXJk aSwgJXJzcAorCiAjaWZuZGVmIE5ERUJVRwogI2RlZmluZSBBU1NFUlRfTk9UX0lOX0FUT01JQyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBzdGk7IC8q IHNvbWV0aW1lcyBjYWxsZWQgd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkOiBzYWZlIHRvIGVuYWJs ZSAqLyBcCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaCBiL3hlbi9p bmNsdWRlL2FzbS14ODYvY3VycmVudC5oCmluZGV4IDZhZTA5MzFhNTkuLjRiN2U5MTA0YmUgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCisrKyBiL3hlbi9pbmNsdWRl L2FzbS14ODYvY3VycmVudC5oCkBAIC05LDYgKzksNyBAQAogCiAjaW5jbHVkZSA8eGVuL3BlcmNw dS5oPgogI2luY2x1ZGUgPHB1YmxpYy94ZW4uaD4KKyNpbmNsdWRlIDxhc20vY29uZmlnLmg+CiAj aW5jbHVkZSA8YXNtL3BhZ2UuaD4KIAogLyoKQEAgLTk0LDkgKzk1LDE2IEBAIHN0YXRpYyBpbmxp bmUgc3RydWN0IGNwdV9pbmZvICpnZXRfY3B1X2luZm8odm9pZCkKICNkZWZpbmUgc2V0X3Byb2Nl c3Nvcl9pZChpZCkgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgICBzdHJ1Y3QgY3B1X2luZm8gKmNpX18gPSBnZXRfY3B1X2luZm8oKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgICBjaV9fLT5wZXJfY3B1X29mZnNldCA9IF9fcGVyX2NwdV9v ZmZzZXRbY2lfXy0+cHJvY2Vzc29yX2lkID0gKGlkKV07IFwKKyAgICBjaV9fLT5mbGFncyA9IDA7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIH0g d2hpbGUgKDApCiAKLSNkZWZpbmUgZ3Vlc3RfY3B1X3VzZXJfcmVncygpICgmZ2V0X2NwdV9pbmZv KCktPmd1ZXN0X2NwdV91c2VyX3JlZ3MpCisjZGVmaW5lIGd1ZXN0X2NwdV91c2VyX3JlZ3MoKSAo eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RydWN0IGNw dV9pbmZvICppbmZvID0gZ2V0X2NwdV9pbmZvKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgaWYgKCBpbmZvLT5mbGFncyAmIFZDUFVTVEFDS19BQ1RJVkUgKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGluZm8gPSAoc3RydWN0IGNwdV9pbmZvICop KFhQVElfU1RBUlQoaW5mby0+Y3VycmVudF92Y3B1KSArICAgICBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNUQUNLX1NJWkUpIC0gMTsgICAgICAgICAgICAgICAgICAgICBc CisgICAgJmluZm8tPmd1ZXN0X2NwdV91c2VyX3JlZ3M7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCit9KQogCiAvKgogICogR2V0IHRoZSBib3R0b20tb2Ytc3RhY2ss IGFzIHN0b3JlZCBpbiB0aGUgcGVyLUNQVSBUU1MuIFRoaXMgYWN0dWFsbHkgcG9pbnRzCi0tIAoy LjEzLjYKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs