From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bhupinder Thakur Subject: [PATCH 01/10] xen/arm: vpl011: Add pl011 uart emulation in Xen Date: Mon, 3 Apr 2017 15:14:24 +0530 Message-ID: <1491212673-13476-2-git-send-email-bhupinder.thakur@linaro.org> References: <1491212673-13476-1-git-send-email-bhupinder.thakur@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cuyXZ-0001MH-Qi for xen-devel@lists.xenproject.org; Mon, 03 Apr 2017 09:44:49 +0000 Received: by mail-pg0-f48.google.com with SMTP id x125so115247007pgb.0 for ; Mon, 03 Apr 2017 02:44:47 -0700 (PDT) In-Reply-To: <1491212673-13476-1-git-send-email-bhupinder.thakur@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Julien Grall , Stefano Stabellini , Ian Jackson List-Id: xen-devel@lists.xenproject.org QWRkIGVtdWxhdGlvbiBjb2RlIHRvIGVtdWxhdGUgcmVhZC93cml0ZSBhY2Nlc3MgdG8gcGwwMTEg cmVnaXN0ZXJzCmFuZCBwbDAxMSBpbnRlcnJ1cHRzOgoKICAgIC0gRW11bGF0ZSBEUiByZWFkL3dy aXRlIGJ5IHJlYWRpbmcgYW5kIHdyaXRpbmcgZnJvbS90byB0aGUgSU4KICAgICAgYW5kIE9VVCBy aW5nIGJ1ZmZlcnMgYW5kIHJhaXNpbmcgYW4gZXZlbnQgdG8gdGhlIGJhY2tlbmQgd2hlbgogICAg ICB0aGVyZSBpcyBkYXRhIGluIHRoZSBPVVQgcmluZyBidWZmZXIgYW5kIGluamVjdGluZyBhbiBp bnRlcnJ1cHQKICAgICAgdG8gdGhlIGd1ZXN0IHdoZW4gdGhlcmUgaXMgZGF0YSBpbiB0aGUgSU4g cmluZyBidWZmZXIKCiAgICAtIE90aGVyIHJlZ2lzdGVycyBhcmUgcmVsYXRlZCB0byBpbnRlcnJ1 cHQgbWFuYWdlbWVudCBhbmQKICAgICAgZXNzZW50aWFsbHkgY29udHJvbCB3aGVuIGludGVycnVw dHMgYXJlIGRlbGl2ZXJlZCB0byB0aGUgZ3Vlc3QKClRoZSBTQlNBIGNvbXBsaWFudCBwbDAxMSB1 YXJ0IGlzIGNvdmVyZWQgaW4gQXBwZW5kaXggQiBvZgpodHRwczovL3N0YXRpYy5kb2NzLmFybS5j b20vZGVuMDAyOS9hL1NlcnZlcl9CYXNlX1N5c3RlbV9BcmNoaXRlY3R1cmVfdjNfMV9BUk1fREVO XzAwMjlBLnBkZgoKU2lnbmVkLW9mZi1ieTogQmh1cGluZGVyIFRoYWt1ciA8Ymh1cGluZGVyLnRo YWt1ckBsaW5hcm8ub3JnPgotLS0KIHhlbi9hcmNoL2FybS9LY29uZmlnICAgICAgICAgICAgIHwg ICA1ICsKIHhlbi9hcmNoL2FybS9NYWtlZmlsZSAgICAgICAgICAgIHwgICAxICsKIHhlbi9hcmNo L2FybS92cGwwMTEuYyAgICAgICAgICAgIHwgMzM5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCAgICAgfCAgIDUgKwog eGVuL2luY2x1ZGUvYXNtLWFybS9wbDAxMS11YXJ0LmggfCAgIDIgKwogeGVuL2luY2x1ZGUvcHVi bGljL2FyY2gtYXJtLmggICAgfCAgIDggKwogeGVuL2luY2x1ZGUveGVuL3ZwbDAxMS5oICAgICAg ICAgfCAgNjcgKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgNDI3IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vdnBsMDExLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB4ZW4vaW5jbHVkZS94ZW4vdnBsMDExLmgKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vS2Nv bmZpZyBiL3hlbi9hcmNoL2FybS9LY29uZmlnCmluZGV4IDJlMDIzZDEuLmJmYTg2YzcgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL2FybS9LY29uZmlnCisrKyBiL3hlbi9hcmNoL2FybS9LY29uZmlnCkBA IC00NSw2ICs0NSwxMSBAQCBjb25maWcgQUNQSQogY29uZmlnIEhBU19HSUNWMwogCWJvb2wKIAor Y29uZmlnIFZQTDAxMV9DT05TT0xFCisJYm9vbCAiRW11bGF0ZWQgcGwwMTEgY29uc29sZSBzdXBw b3J0IgorCWRlZmF1bHQgeQorCS0tLWhlbHAtLS0KKwkgIEFsbG93cyBhIGd1ZXN0IHRvIHVzZSBw bDAxMSBVQVJUIGFzIGEgY29uc29sZQogZW5kbWVudQogCiBtZW51ICJBUk0gZXJyYXRhIHdvcmth cm91bmQgdmlhIHRoZSBhbHRlcm5hdGl2ZSBmcmFtZXdvcmsiCmRpZmYgLS1naXQgYS94ZW4vYXJj aC9hcm0vTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKaW5kZXggN2FmYjhhMy4uYTk0 YmRhYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL01ha2VmaWxlCisrKyBiL3hlbi9hcmNoL2Fy bS9NYWtlZmlsZQpAQCAtNDksNiArNDksNyBAQCBvYmoteSArPSB2bV9ldmVudC5vCiBvYmoteSAr PSB2dGltZXIubwogb2JqLXkgKz0gdnBzY2kubwogb2JqLXkgKz0gdnVhcnQubworb2JqLSQoQ09O RklHX1ZQTDAxMV9DT05TT0xFKSArPSB2cGwwMTEubwogCiAjb2JqLWJpbi15ICs9IC4uLi5vCiAK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92cGwwMTEuYyBiL3hlbi9hcmNoL2FybS92cGwwMTEu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWIxY2JmCi0tLSAvZGV2L251 bGwKKysrIGIveGVuL2FyY2gvYXJtL3ZwbDAxMS5jCkBAIC0wLDAgKzEsMzM5IEBACisvKgorICog YXJjaC9hcm0vdnBsMDExLmMKKyAqCisgKiBWaXJ0dWFsIFBMMDExIFVBUlQKKyAqCisgKiBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAqIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAorICogQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB QklMSVRZIG9yCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCisgKiBtb3JlIGRldGFpbHMuCisgKgorICog WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYWxvbmcgd2l0aAorICogdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2luY2x1ZGUgPHhlbi9pbml0Lmg+Cisj aW5jbHVkZSA8eGVuL2xpYi5oPgorI2luY2x1ZGUgPHhlbi9lcnJuby5oPgorI2luY2x1ZGUgPHhl bi9ndWVzdF9hY2Nlc3MuaD4KKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KKyNpbmNsdWRlIDx4ZW4v ZXZlbnQuaD4KKyNpbmNsdWRlIDxwdWJsaWMvaW8vY29uc29sZS5oPgorI2luY2x1ZGUgPHhlbi92 cGwwMTEuaD4KKyNpbmNsdWRlIDxhc20tYXJtL3BsMDExLXVhcnQuaD4KKwordW5zaWduZWQgaW50 IHZwbDAxMV9yZWdfbWFza1tdID0gezB4ZmYsIDB4ZmZmZiwgMHhmZmZmZmZmZn07CisKK3N0YXRp YyB2b2lkIHZnaWNfaW5qZWN0X3ZwbDAxMV9zcGkoc3RydWN0IGRvbWFpbiAqZCkKK3sKKyAgICBz dHJ1Y3QgdnBsMDExX3MgKnZwbDAxMT0mZC0+YXJjaC52cGwwMTE7CisKKyAgICBpZiAoICh2cGww MTEtPnVhcnRyaXMgJiB2cGwwMTEtPnVhcnRpbXNjKSApCisgICAgICAgIHZnaWNfdmNwdV9pbmpl Y3Rfc3BpKGQsIEdVRVNUX1ZQTDAxMV9TUEkpOworfQorCitzdGF0aWMgdm9pZCB2cGwwMTFfcmVh ZF9kYXRhKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ4X3QgKmRhdGEpCit7CisgICAgdW5zaWduZWQg bG9uZyBmbGFnczsKKyAgICBzdHJ1Y3QgdnBsMDExX3MgKnZwbDAxMT0mZC0+YXJjaC52cGwwMTE7 CisgICAgc3RydWN0IHhlbmNvbnNfaW50ZXJmYWNlICppbnRmPShzdHJ1Y3QgeGVuY29uc19pbnRl cmZhY2UgKil2cGwwMTEtPnJpbmdfYnVmOworCisgICAgLyoKKyAgICAgKiBJbml0aWFsaXplIHRo ZSBkYXRhIHNvIHRoYXQgZXZlbiBpZiB0aGVyZSBpcyBubyBkYXRhIGluIHJpbmcgYnVmZmVyCisg ICAgICogMCBpcyByZXR1cm5lZC4KKyAgICAgKi8KKyAgICAqZGF0YSA9IDA7CisKKyAgICBWUEww MTFfTE9DSyhkLCBmbGFncyk7CisKKyAgICAvKgorICAgICAqIEl0IGlzIGV4cGVjdGVkIHRoYXQg dGhlcmUgd2lsbCBiZSBkYXRhIGluIHRoZSByaW5nIGJ1ZmZlciB3aGVuIHRoaXMgCisgICAgICog ZnVuY3Rpb24gaXMgY2FsbGVkIHNpbmNlIHRoZSBndWVzdCBpcyBleHBlY3RlZCB0byByZWFkIHRo ZSBkYXRhIHJlZ2lzdGVyCisgICAgICogb25seSBpZiB0aGUgVFhGRSBmbGFnIGlzIG5vdCBzZXQu CisgICAgICogSWYgdGhlIGd1ZXN0IHN0aWxsIGRvZXMgcmVhZCBldmVudCB3aGVuIFRYRkUgYml0 IGlzIHNldCB0aGVuIDAgd2lsbAorICAgICAqIGJlIHJldHVybmVkLgorICAgICAqLworICAgIGlm ICggIVZQTDAxMV9JTl9SSU5HX0VNUFRZKGludGYpICkKKyAgICB7CisgICAgICAgICpkYXRhID0g aW50Zi0+aW5bTUFTS19YRU5DT05TX0lEWChpbnRmLT5pbl9jb25zKyssIGludGYtPmluKV07Cisg ICAgfQorCisgICAgaWYgKCBWUEwwMTFfSU5fUklOR19FTVBUWShpbnRmKSApCisgICAgeworICAg ICAgICB2cGwwMTEtPnVhcnRmciB8PSAoUlhGRSk7CisgICAgICAgIHZwbDAxMS0+dWFydHJpcyAm PSB+KFJYSSk7CisgICAgfQorCisgICAgdnBsMDExLT51YXJ0ZnIgJj0gfihSWEZGKTsKKworICAg IFZQTDAxMV9VTkxPQ0soZCwgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCB2cGwwMTFfd3JpdGVf ZGF0YShzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90IGRhdGEpCit7CisgICAgdW5zaWduZWQgbG9u ZyBmbGFnczsKKyAgICBzdHJ1Y3QgdnBsMDExX3MgKnZwbDAxMT0mZC0+YXJjaC52cGwwMTE7Cisg ICAgc3RydWN0IHhlbmNvbnNfaW50ZXJmYWNlICppbnRmPShzdHJ1Y3QgeGVuY29uc19pbnRlcmZh Y2UgKil2cGwwMTEtPnJpbmdfYnVmOworCisgICAgVlBMMDExX0xPQ0soZCwgZmxhZ3MpOworCisg ICAgLyoKKyAgICAgKiBJdCBpcyBleHBlY3RlZCB0aGF0IHRoZSByaW5nIGlzIG5vdCBmdWxsIHdo ZW4gdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQKKyAgICAgKiBhcyB0aGUgZ3Vlc3QgaXMgZXhwZWN0 ZWQgdG8gd3JpdGUgdG8gdGhlIGRhdGEgcmVnaXN0ZXIgb25seSB3aGVuIHRoZQorICAgICAqIFRY RkYgZmxhZyBpcyBub3Qgc2V0LgorICAgICAqIEluIGNhc2UgdGhlIGd1ZXN0IGRvZXMgd3JpdGUg ZXZlbiB3aGVuIHRoZSBUWEZGIGZsYWcgaXMgc2V0IHRoZW4gdGhlCisgICAgICogZGF0YSB3aWxs IGJlIHNpbGVudGx5IGRyb3BwZWQuCisgICAgICovCisgICAgaWYgKCAhVlBMMDExX09VVF9SSU5H X0ZVTEwoaW50ZikgKQorICAgIHsKKyAgICAgICAgaW50Zi0+b3V0W01BU0tfWEVOQ09OU19JRFgo aW50Zi0+b3V0X3Byb2QrKywgaW50Zi0+b3V0KV0gPSBkYXRhOworICAgICAgICBzbXBfd21iKCk7 CisgICAgfQorCisgICAgaWYgKCBWUEwwMTFfT1VUX1JJTkdfRlVMTChpbnRmKSApCisgICAgewor ICAgICAgICB2cGwwMTEtPnVhcnRmciB8PSAoVFhGRik7CisgICAgICAgIHZwbDAxMS0+dWFydHJp cyAmPSB+KFRYSSk7CisgICAgfQorCisgICAgdnBsMDExLT51YXJ0ZnIgfD0gKEJVU1kpOworCisg ICAgdnBsMDExLT51YXJ0ZnIgJj0gfihUWEZFKTsKKworICAgIFZQTDAxMV9VTkxPQ0soZCwgZmxh Z3MpOworCisgICAgLyogcmFpc2UgYW4gZXZlbnQgdG8geGVuY29uc29sZWQgb25seSBpZiBpdCBp cyB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBidWZmZXIgKi8KKyAgICBpZiAoIFZQTDAxMV9S SU5HX0RFUFRIKGludGYsIG91dCkgPT0gMSApCisgICAgeworICAgICAgICBub3RpZnlfdmlhX3hl bl9ldmVudF9jaGFubmVsKGQsIGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX1ZD T05TT0xFX0VWVENITl0pOworICAgIH0KK30KKworc3RhdGljIGludCB2cGwwMTFfbW1pb19yZWFk KHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywgcmVnaXN0ZXJfdCAqciwgdm9pZCAq cHJpdikKK3sKKyAgICB1aW50OF90IGNoOworICAgIHN0cnVjdCBoc3JfZGFidCBkYWJ0ID0gaW5m by0+ZGFidDsKKyAgICBpbnQgdnBsMDExX3JlZyA9IChpbnQpKGluZm8tPmdwYSAtIEdVRVNUX1BM MDExX0JBU0UpOworICAgIHN0cnVjdCB2cGwwMTFfcyAqdnBsMDExID0gJnYtPmRvbWFpbi0+YXJj aC52cGwwMTE7CisKKyAgICBzd2l0Y2ggKCB2cGwwMTFfcmVnICkKKyAgICB7CisgICAgY2FzZSBE UjoKKyAgICAgICAgaWYgKCAhVkFMSURfV19TSVpFKGRhYnQuc2l6ZSkgKSBnb3RvIGJhZF93aWR0 aDsKKyAgICAgICAgdnBsMDExX3JlYWRfZGF0YSh2LT5kb21haW4sICZjaCk7CisgICAgICAgICpy ID0gY2g7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSU1I6CisgICAgICAgIGlmICggIVZB TElEX0JXX1NJWkUoZGFidC5zaXplKSApIGdvdG8gYmFkX3dpZHRoOworCisgICAgICAgIC8qIEl0 IGFsd2F5cyByZXR1cm5zIDAgYXMgdGhlcmUgYXJlIG5vIHBoeXNpY2FsIGVycm9ycy4gKi8KKyAg ICAgICAgKnIgPSAwOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRlI6CisgICAgICAgIGlm ICggIVZBTElEX0JXX1NJWkUoZGFidC5zaXplKSApIGdvdG8gYmFkX3dpZHRoOworICAgICAgICAq ciA9ICh2cGwwMTEtPnVhcnRmciAmIHZwbDAxMV9yZWdfbWFza1tkYWJ0LnNpemVdKTsKKyAgICAg ICAgYnJlYWs7CisKKyAgICBjYXNlIFJJUzoKKyAgICAgICAgaWYgKCAhVkFMSURfV19TSVpFKGRh YnQuc2l6ZSkgKSBnb3RvIGJhZF93aWR0aDsKKyAgICAgICAgKnIgPSAodnBsMDExLT51YXJ0cmlz ICYgdnBsMDExX3JlZ19tYXNrW2RhYnQuc2l6ZV0pOworICAgICAgICBicmVhazsKKworICAgIGNh c2UgTUlTOgorICAgICAgICBpZiAoICFWQUxJRF9XX1NJWkUoZGFidC5zaXplKSApIGdvdG8gYmFk X3dpZHRoOworICAgICAgICAqciA9ICh2cGwwMTEtPnVhcnRyaXMgJgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZwbDAxMS0+dWFydGltc2MgJiB2cGwwMTFfcmVnX21hc2tbZGFidC5zaXpl XSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBJTVNDOgorICAgICAgICBpZiAoICFWQUxJ RF9XX1NJWkUoZGFidC5zaXplKSApIGdvdG8gYmFkX3dpZHRoOworICAgICAgICAqciA9ICh2cGww MTEtPnVhcnRpbXNjICYgdnBsMDExX3JlZ19tYXNrW2RhYnQuc2l6ZV0pOworICAgICAgICBicmVh azsKKworICAgIGNhc2UgSUNSOgorICAgICAgICBpZiAoICFWQUxJRF9XX1NJWkUoZGFidC5zaXpl KSApIGdvdG8gYmFkX3dpZHRoOworCisgICAgICAgIC8qIE9ubHkgd3JpdGUgaXMgdmFsaWQuICov CisgICAgICAgIHJldHVybiAwOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgZ3ByaW50ayhYRU5M T0dfRVJSLCAidnBsMDExOiB1bmhhbmRsZWQgcmVhZCByJWQgb2Zmc2V0ICUjMDh4XG4iLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhYnQucmVnLCB2cGwwMTFfcmVnKTsKKyAgICAg ICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDE7CisKK2JhZF93aWR0aDoKKyAgICBn cHJpbnRrKFhFTkxPR19FUlIsICJ2cGwwMTE6IGJhZCByZWFkIHdpZHRoICVkIHIlZCBvZmZzZXQg JSMwOHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGRhYnQuc2l6ZSwgZGFidC5yZWcsIHZw bDAxMV9yZWcpOworICAgIGRvbWFpbl9jcmFzaF9zeW5jaHJvbm91cygpOworICAgIHJldHVybiAw OworCit9CisKK3N0YXRpYyBpbnQgdnBsMDExX21taW9fd3JpdGUoc3RydWN0IHZjcHUgKnYsIG1t aW9faW5mb190ICppbmZvLCByZWdpc3Rlcl90IHIsIHZvaWQgKnByaXYpCit7CisgICAgdWludDhf dCBjaCA9ICgoc3RydWN0IHVhcnRkcl9yZWcgKikmciktPmRhdGE7CisgICAgc3RydWN0IGhzcl9k YWJ0IGRhYnQgPSBpbmZvLT5kYWJ0OworICAgIGludCB2cGwwMTFfcmVnID0gKGludCkoaW5mby0+ Z3BhIC0gR1VFU1RfUEwwMTFfQkFTRSk7CisgICAgc3RydWN0IHZwbDAxMV9zICp2cGwwMTEgPSAm di0+ZG9tYWluLT5hcmNoLnZwbDAxMTsKKworICAgIHN3aXRjaCAoIHZwbDAxMV9yZWcgKQorICAg IHsKKyAgICBjYXNlIERSOgorCisgICAgICAgIGlmICggIVZBTElEX0JXX1NJWkUoZGFidC5zaXpl KSApIGdvdG8gYmFkX3dpZHRoOworICAgICAgICB2cGwwMTFfd3JpdGVfZGF0YSh2LT5kb21haW4s IGNoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFJTUjogLyogTm90aGluZyB0byBjbGVh ci4gKi8KKyAgICAgICAgaWYgKCAhVkFMSURfQldfU0laRShkYWJ0LnNpemUpICkgZ290byBiYWRf d2lkdGg7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBGUjoKKyAgICAgICAgZ290byB3cml0 ZV9pZ25vcmU7CisgICAgY2FzZSBSSVM6CisgICAgY2FzZSBNSVM6CisgICAgICAgIGdvdG8gd29y ZF93cml0ZV9pZ25vcmU7CisKKyAgICBjYXNlIElNU0M6CisgICAgICAgIGlmICggIVZBTElEX1df U0laRShkYWJ0LnNpemUpICkgZ290byBiYWRfd2lkdGg7CisgICAgICAgIHZwbDAxMS0+dWFydGlt c2MgPSAociAmIHZwbDAxMV9yZWdfbWFza1tkYWJ0LnNpemVdKTsKKyAgICAgICAgdmdpY19pbmpl Y3RfdnBsMDExX3NwaSh2LT5kb21haW4pOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgSUNS OgorICAgICAgICBpZiAoICFWQUxJRF9XX1NJWkUoZGFidC5zaXplKSApIGdvdG8gYmFkX3dpZHRo OworICAgICAgICB2cGwwMTEtPnVhcnRyaXMgJj0gfihyICYgdnBsMDExX3JlZ19tYXNrW2RhYnQu c2l6ZV0pOworICAgICAgICB2Z2ljX2luamVjdF92cGwwMTFfc3BpKHYtPmRvbWFpbik7CisgICAg ICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgZ3ByaW50ayhYRU5MT0dfRVJSLCAi dnBsMDExOiB1bmhhbmRsZWQgd3JpdGUgciVkIG9mZnNldCAlIzA4eFxuIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYWJ0LnJlZywgdnBsMDExX3JlZyk7CisgICAgICAgIHJldHVy biAwOworICAgIH0KKworICAgIHJldHVybiAxOworCit3cml0ZV9pZ25vcmU6CisgICAgaWYgKCAh VkFMSURfQldfU0laRShkYWJ0LnNpemUpICkgZ290byBiYWRfd2lkdGg7CisgICAgcmV0dXJuIDE7 CisKK3dvcmRfd3JpdGVfaWdub3JlOgorICAgIGlmICggIVZBTElEX1dfU0laRShkYWJ0LnNpemUp ICkgZ290byBiYWRfd2lkdGg7CisgICAgcmV0dXJuIDE7CisKK2JhZF93aWR0aDoKKyAgICBncHJp bnRrKFhFTkxPR19FUlIsICJ2cGwwMTE6IGJhZCB3cml0ZSB3aWR0aCAlZCByJWQgb2Zmc2V0ICUj MDh4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICBkYWJ0LnNpemUsIGRhYnQucmVnLCB2cGww MTFfcmVnKTsKKyAgICBkb21haW5fY3Jhc2hfc3luY2hyb25vdXMoKTsKKyAgICByZXR1cm4gMDsK KworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG1taW9faGFuZGxlcl9vcHMgdnBsMDExX21taW9f aGFuZGxlciA9IHsKKyAgICAucmVhZCA9IHZwbDAxMV9tbWlvX3JlYWQsCisgICAgLndyaXRlID0g dnBsMDExX21taW9fd3JpdGUsCit9OworCitpbnQgdnBsMDExX21hcF9ndWVzdF9wYWdlKHN0cnVj dCBkb21haW4gKmQpCit7CisgICAgc3RydWN0IHZwbDAxMV9zICp2cGwwMTEgPSAmZC0+YXJjaC52 cGwwMTE7CisKKyAgICAvKiBNYXAgdGhlIGd1ZXN0IFBGTiB0byBYZW4gYWRkcmVzcyBzcGFjZS4g Ki8KKyAgICByZXR1cm4gcHJlcGFyZV9yaW5nX2Zvcl9oZWxwZXIoZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1f VkNPTlNPTEVfUEZOXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZwbDAx MS0+cmluZ19wYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdnBsMDEx LT5yaW5nX2J1Zik7Cit9CisKK3N0YXRpYyB2b2lkIHZwbDAxMV9kYXRhX2F2YWlsKHN0cnVjdCBk b21haW4gKmQpCit7CisgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKKyAgICBzdHJ1Y3QgdnBsMDEx X3MgKnZwbDAxMSA9ICZkLT5hcmNoLnZwbDAxMTsKKyAgICBzdHJ1Y3QgeGVuY29uc19pbnRlcmZh Y2UgKmludGY9KHN0cnVjdCB4ZW5jb25zX2ludGVyZmFjZSAqKXZwbDAxMS0+cmluZ19idWY7CisK KyAgICBWUEwwMTFfTE9DSyhkLCBmbGFncyk7CisKKyAgICAvKiBVcGRhdGUgdGhlIHVhcnQgcngg c3RhdGUgaWYgdGhlIGJ1ZmZlciBpcyBub3QgZW1wdHkuICovCisgICAgaWYgKCAhVlBMMDExX0lO X1JJTkdfRU1QVFkoaW50ZikgKQorICAgIHsKKyAgICAgICAgdnBsMDExLT51YXJ0ZnIgJj0gfihS WEZFKTsKKyAgICAgICAgaWYgKCBWUEwwMTFfSU5fUklOR19GVUxMKGludGYpICkKKyAgICAgICAg ICAgIHZwbDAxMS0+dWFydGZyIHw9IChSWEZGKTsKKyAgICAgICAgdnBsMDExLT51YXJ0cmlzIHw9 IChSWEkpOworICAgIH0KKworICAgIC8qIFVwZGF0ZSB0aGUgdWFydCB0eCBzdGF0ZSBpZiB0aGUg YnVmZmVyIGlzIG5vdCBmdWxsLiAqLworICAgIGlmICggIVZQTDAxMV9PVVRfUklOR19GVUxMKGlu dGYpICkKKyAgICB7CisgICAgICAgIHZwbDAxMS0+dWFydGZyICY9IH4oVFhGRik7CisgICAgICAg IHZwbDAxMS0+dWFydHJpcyB8PSAoVFhJKTsKKyAgICAgICAgaWYgKCBWUEwwMTFfT1VUX1JJTkdf RU1QVFkoaW50ZikgKQorICAgICAgICB7CisgICAgICAgICAgICB2cGwwMTEtPnVhcnRmciAmPSB+ KEJVU1kpOworICAgICAgICAgICAgdnBsMDExLT51YXJ0ZnIgfD0gKFRYRkUpOworICAgICAgICB9 CisgICAgfQorCisgICAgVlBMMDExX1VOTE9DSyhkLCBmbGFncyk7CisKKyAgICB2Z2ljX2luamVj dF92cGwwMTFfc3BpKGQpOworCisgICAgaWYgKCAhVlBMMDExX09VVF9SSU5HX0VNUFRZKGludGYp ICkKKyAgICB7CisgICAgICAgIEFTU0VSVCggZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1f UEFSQU1fVkNPTlNPTEVfRVZUQ0hOXSAhPSAwICk7CisgICAgICAgIG5vdGlmeV92aWFfeGVuX2V2 ZW50X2NoYW5uZWwoZCwgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fVkNPTlNP TEVfRVZUQ0hOXSk7CisgICAgfQorfQorCisKK3N0YXRpYyB2b2lkIHZwbDAxMV9ub3RpZmljYXRp b24oc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBwb3J0KQoreworICAgIHZwbDAxMV9kYXRh X2F2YWlsKHYtPmRvbWFpbik7Cit9CisKK2ludCBkb21haW5fdnBsMDExX2luaXQoc3RydWN0IGRv bWFpbiAqZCwgc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyAqY29uZmlnKQoreworICAgIGlu dCByYzsKKyAgICBzdHJ1Y3QgdnBsMDExX3MgKnZwbDAxMSA9ICZkLT5hcmNoLnZwbDAxMTsKKwor ICAgIHJjID0gYWxsb2NfdW5ib3VuZF94ZW5fZXZlbnRfY2hhbm5lbChkLCAwLCBjb25maWctPmNv bnNvbGVfZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZw bDAxMV9ub3RpZmljYXRpb24pOworICAgIGlmIChyYyA8IDApCisgICAgeworICAgICAgICByZXR1 cm4gcmM7CisgICAgfQorICAgIGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX1ZD T05TT0xFX0VWVENITl0gPSByYzsKKyAgICByYyA9IHZnaWNfcmVzZXJ2ZV92aXJxKGQsIEdVRVNU X1ZQTDAxMV9TUEkpOworICAgIGlmICggIXJjICkKKyAgICAgICAgcmV0dXJuIHJjOworICAgIHJl Z2lzdGVyX21taW9faGFuZGxlcihkLCAmdnBsMDExX21taW9faGFuZGxlciwgR1VFU1RfUEwwMTFf QkFTRSwgR1VFU1RfUEwwMTFfU0laRSwgTlVMTCk7CisgICAgc3Bpbl9sb2NrX2luaXQoJnZwbDAx MS0+bG9jayk7CisKKyAgICB2cGwwMTEtPmludGlhbGl6ZWQgPSB0cnVlOworCisgICAgcmV0dXJu IDA7Cit9CisKK2ludCBkb21haW5fdnBsMDExX2RlaW5pdChzdHJ1Y3QgZG9tYWluICpkKQorewor ICAgIHN0cnVjdCB2cGwwMTFfcyAqdnBsMDExID0gJmQtPmFyY2gudnBsMDExOworCisgICAgaWYg KCB2cGwwMTEtPmludGlhbGl6ZWQgKQorICAgIHsKKyAgICAgICAgZnJlZV94ZW5fZXZlbnRfY2hh bm5lbChkLCBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJBTV9WQ09OU09MRV9FVlRD SE5dKTsKKyAgICAgICAgZGVzdHJveV9yaW5nX2Zvcl9oZWxwZXIoJnZwbDAxMS0+cmluZ19idWYs IHZwbDAxMS0+cmluZ19wYWdlKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0v ZG9tYWluLmgKaW5kZXggMmQ2ZmJiMS4uYTEyMjUwNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv YXNtLWFybS9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCkBAIC0x MSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8YXNtL2dpYy5oPgogI2luY2x1ZGUgPHB1YmxpYy9odm0v cGFyYW1zLmg+CiAjaW5jbHVkZSA8eGVuL3NlcmlhbC5oPgorI2luY2x1ZGUgPHhlbi92cGwwMTEu aD4KIAogc3RydWN0IGh2bV9kb21haW4KIHsKQEAgLTEzMSw2ICsxMzIsMTAgQEAgc3RydWN0IGFy Y2hfZG9tYWluCiAgICAgc3RydWN0IHsKICAgICAgICAgdWludDhfdCBwcml2aWxlZ2VkX2NhbGxf ZW5hYmxlZCA6IDE7CiAgICAgfSBtb25pdG9yOworCisjaWZkZWYgQ09ORklHX1ZQTDAxMV9DT05T T0xFCisgICAgc3RydWN0IHZwbDAxMV9zIHZwbDAxMTsKKyNlbmRpZgogfSAgX19jYWNoZWxpbmVf YWxpZ25lZDsKIAogc3RydWN0IGFyY2hfdmNwdQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LWFybS9wbDAxMS11YXJ0LmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BsMDExLXVhcnQuaAppbmRl eCAxMjNmNDc3Li41N2U5ZWM3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3BsMDEx LXVhcnQuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BsMDExLXVhcnQuaApAQCAtNDksNiAr NDksOCBAQAogLyogRlIgYml0cyAqLwogI2RlZmluZSBUWEZFICAgKDE8PDcpIC8qIFRYIEZJRk8g ZW1wdHkgKi8KICNkZWZpbmUgUlhGRSAgICgxPDw0KSAvKiBSWCBGSUZPIGVtcHR5ICovCisjZGVm aW5lIFRYRkYgICAoMTw8NSkgLyogVFggRklGTyBmdWxsICovCisjZGVmaW5lIFJYRkYgICAoMTw8 NikgLyogUlggRklGTyBmdWxsICovCiAjZGVmaW5lIEJVU1kgICAoMTw8MykgLyogVHJhbnNtaXQg aXMgbm90IGNvbXBsZXRlICovCiAKIC8qIExDUl9IIGJpdHMgKi8KZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgK aW5kZXggYmQ5NzRmYi4uNWY5MTIwNyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2Fy Y2gtYXJtLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgKQEAgLTMyMiw2ICsz MjIsOCBAQCBzdHJ1Y3QgeGVuX2FyY2hfZG9tYWluY29uZmlnIHsKICAgICAgKgogICAgICAqLwog ICAgIHVpbnQzMl90IGNsb2NrX2ZyZXF1ZW5jeTsKKworICAgIHVpbnQzMl90IGNvbnNvbGVfZG9t aWQ7CiB9OwogI2VuZGlmIC8qIF9fWEVOX18gfHwgX19YRU5fVE9PTFNfXyAqLwogCkBAIC00MTAs NiArNDEyLDEwIEBAIHR5cGVkZWYgdWludDY0X3QgeGVuX2NhbGxiYWNrX3Q7CiAjZGVmaW5lIEdV RVNUX0FDUElfQkFTRSAweDIwMDAwMDAwVUxMCiAjZGVmaW5lIEdVRVNUX0FDUElfU0laRSAweDAy MDAwMDAwVUxMCiAKKy8qIFBMMDExIG1hcHBpbmdzICovCisjZGVmaW5lIEdVRVNUX1BMMDExX0JB U0UgICAgMHgyMjAwMDAwMFVMTAorI2RlZmluZSBHVUVTVF9QTDAxMV9TSVpFICAgIDB4MDAwMDEw MDBVTEwKKwogLyoKICAqIDE2TUIgPT0gNDA5NiBwYWdlcyByZXNlcnZlZCBmb3IgZ3Vlc3QgdG8g dXNlIGFzIGEgcmVnaW9uIHRvIG1hcCBpdHMKICAqIGdyYW50IHRhYmxlIGluLgpAQCAtNDQ0LDYg KzQ1MCw4IEBAIHR5cGVkZWYgdWludDY0X3QgeGVuX2NhbGxiYWNrX3Q7CiAjZGVmaW5lIEdVRVNU X1RJTUVSX1BIWVNfTlNfUFBJIDMwCiAjZGVmaW5lIEdVRVNUX0VWVENITl9QUEkgICAgICAgIDMx CiAKKyNkZWZpbmUgR1VFU1RfVlBMMDExX1NQSSAgICAgICAgMzIKKwogLyogUFNDSSBmdW5jdGlv bnMgKi8KICNkZWZpbmUgUFNDSV9jcHVfc3VzcGVuZCAwCiAjZGVmaW5lIFBTQ0lfY3B1X29mZiAg ICAgMQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3ZwbDAxMS5oIGIveGVuL2luY2x1ZGUv eGVuL3ZwbDAxMS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZjJhYmEK LS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVkZS94ZW4vdnBsMDExLmgKQEAgLTAsMCArMSw2 NyBAQAorLyoKKyAqIGluY2x1ZGUveGVuL3ZwbDAxMS5oCisgKgorICogVmlydHVhbCBQTDAxMSBV QVJUCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0 aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgKiB2ZXJzaW9uIDIsIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0 IFdJVEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBk ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGgKKyAqIHRoaXMgcHJvZ3JhbTsgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpZm5kZWYg X1ZQTDAxMV9IXworCisjZGVmaW5lIF9WUEwwMTFfSF8KKworLyogaGVscGVyIG1hY3JvcyAqLwor I2RlZmluZSBWUEwwMTFfUklOR19ERVBUSChpbnRmLGRpcikgKCgoaW50ZiktPmRpciAjIyBfcHJv ZCAtIChpbnRmKS0+ZGlyICMjIF9jb25zKSkKKworI2RlZmluZSBWUEwwMTFfUklOR19NQVhfREVQ VEgoaW50ZixkaXIpIChzaXplb2YoKGludGYpLT5kaXIpLTEpCisKKyNkZWZpbmUgVlBMMDExX0lO X1JJTkdfRU1QVFkoaW50ZikgKFZQTDAxMV9SSU5HX0RFUFRIKGludGYsIGluKSA9PSAwKQorCisj ZGVmaW5lIFZQTDAxMV9PVVRfUklOR19FTVBUWShpbnRmKSAoVlBMMDExX1JJTkdfREVQVEgoaW50 Ziwgb3V0KSA9PSAwKQorCisjZGVmaW5lIFZQTDAxMV9JTl9SSU5HX0ZVTEwoaW50ZikgKFZQTDAx MV9SSU5HX0RFUFRIKGludGYsIGluKSA9PSBWUEwwMTFfUklOR19NQVhfREVQVEgoaW50ZiwgaW4p KQorCisjZGVmaW5lIFZQTDAxMV9PVVRfUklOR19GVUxMKGludGYpIChWUEwwMTFfUklOR19ERVBU SChpbnRmLCBvdXQpID09IFZQTDAxMV9SSU5HX01BWF9ERVBUSChpbnRmLG91dCkpCisKKyNkZWZp bmUgVlBMMDExX0xPQ0soZCxmbGFncykgc3Bpbl9sb2NrX2lycXNhdmUoJihkKS0+YXJjaC52cGww MTEubG9jaywgZmxhZ3MpCisjZGVmaW5lIFZQTDAxMV9VTkxPQ0soZCxmbGFncykgc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmKGQpLT5hcmNoLnZwbDAxMS5sb2NrLCBmbGFncykKKworI2RlZmluZSBW QUxJRF9CV19TSVpFKHNpemUpICggc2l6ZSA9PSBEQUJUX0JZVEUgfHwgc2l6ZSA9PSBEQUJUX0hB TEZfV09SRCB8fCBzaXplID09IERBQlRfV09SRCApCisjZGVmaW5lIFZBTElEX1dfU0laRShzaXpl KSAgKCBzaXplID09IERBQlRfSEFMRl9XT1JEIHx8IHNpemUgPT0gREFCVF9XT1JEICkKKworc3Ry dWN0IHVhcnRkcl9yZWcgeworICAgIHVpbnQ4X3QgZGF0YTsKKyAgICB1aW50OF90IGVycm9yX3N0 YXR1czo0OworICAgIHVpbnQ4X3QgcmVzZXJ2ZWQxOjQ7CisgICAgdWludDE2X3QgcmVzZXJ2ZWQy OworICAgIHVpbnQzMl90IHJlc2VydmVkMzsKK307CisKK3N0cnVjdCB2cGwwMTFfcyB7CisgICAg dm9pZCAqcmluZ19idWY7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcmluZ19wYWdlOworICAgIHVp bnQzMl90ICAgIHVhcnRmcjsgICAgIC8qIGZsYWcgcmVnaXN0ZXIgKi8KKyAgICB1aW50MzJfdCAg ICB1YXJ0Y3I7ICAgICAvKiBjb250cm9sIHJlZ2lzdGVyICovCisgICAgdWludDMyX3QgICAgdWFy dGltc2M7ICAgLyogaW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIqLworICAgIHVpbnQzMl90ICAgIHVh cnRpY3I7ICAgIC8qIGludGVycnVwdCBjbGVhciByZWdpc3RlciAqLworICAgIHVpbnQzMl90ICAg IHVhcnRyaXM7ICAgIC8qIHJhdyBpbnRlcnJ1cHQgc3RhdHVzIHJlZ2lzdGVyICovCisgICAgdWlu dDMyX3QgICAgdWFydG1pczsgICAgLyogbWFza2VkIGludGVycnVwdCByZWdpc3RlciAqLworICAg IHNwaW5sb2NrX3QgIGxvY2s7CisgICAgYm9vbCAgICAgICAgaW50aWFsaXplZDsgLyogZmxhZyB3 aGljaCB0ZWxscyB3aGV0aGVyIHZwbDAxMSBpcyBpbml0aWFsaXplZCAqLworfTsKKworaW50IGRv bWFpbl92cGwwMTFfaW5pdChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2FyY2hfZG9tYWlu Y29uZmlnICpjb25maWcpOworaW50IGRvbWFpbl92cGwwMTFfZGVpbml0KHN0cnVjdCBkb21haW4g KmQpOworaW50IHZwbDAxMV9tYXBfZ3Vlc3RfcGFnZShzdHJ1Y3QgZG9tYWluICpkKTsKKworI2Vu ZGlmCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=