From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v3 2/8] x86/hvm: introduce hvm_domain_irq macro Date: Wed, 29 Mar 2017 15:47:27 +0100 Message-ID: <20170329144733.4709-1-roger.pau@citrix.com> References: <20170329143918.4445-1-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ctEtT-0008Mh-S5 for xen-devel@lists.xenproject.org; Wed, 29 Mar 2017 14:48:16 +0000 In-Reply-To: <20170329143918.4445-1-roger.pau@citrix.com> 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, konrad.wilk@oracle.com, boris.ostrovsky@oracle.com Cc: Andrew Cooper , Kevin Tian , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGEgbWFjcm8gdG8gZ2V0IGEgcG9pbnRlciB0byB0aGUgaHZtX2lycSBmb3IgYSBI Vk0gZG9tYWluLiBObwpmdW5jdGlvbmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0KQ2M6IEphbiBCZXVsaWNoIDxqYmV1 bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5j b20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KLS0tCkNoYW5nZXMgc2lu Y2UgdjI6CiAtIFN3aXRjaCBkLT5hcmNoLmh2bV9kb21haW4uaXJxLmRwY2kgYWNjZXNzZXMgdG8g dXNlIHRoZSBtYWNybyBhbHNvLgotLS0KTkI6IHRoaXMgaXMgYSBwcmUtcGF0Y2ggaW4gb3JkZXIg dG8gbWFrZSBwYXRjaCAjMyBzbWFsbGVyLgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAg ICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2h2bS9pcnEuYyAgICAgICAgICAgICAg ICB8IDMwICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS92 aW9hcGljLmMgICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMg ICAgICAgICAgICAgfCAgNiArKystLS0KIHhlbi9hcmNoL3g4Ni9waHlzZGV2LmMgICAgICAgICAg ICAgICAgfCAgMiArLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW8uYyAgICAgICAgICB8ICA4 ICsrKystLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyAgICAgICAgIHwgIDIgKy0K IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMgfCAgMiArLQogeGVuL2luY2x1 ZGUvYXNtLXg4Ni9odm0vaXJxLmggICAgICAgICB8ICAxICsKIDkgZmlsZXMgY2hhbmdlZCwgMjkg aW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggYjZjNWM5YmY4ZC4uOThk ZWRlMjBkYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJj aC94ODYvaHZtL2h2bS5jCkBAIC00NTcsNyArNDU3LDcgQEAgdm9pZCBodm1fbWlncmF0ZV9waXJx cyhzdHJ1Y3QgdmNwdSAqdikKIHsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOwog Ci0gICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhZC0+YXJjaC5odm1fZG9tYWluLmlycS5kcGNp ICkKKyAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFodm1fZG9tYWluX2lycShkKS0+ZHBjaSAp CiAgICAgICAgcmV0dXJuOwogCiAgICAgc3Bpbl9sb2NrKCZkLT5ldmVudF9sb2NrKTsKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaXJxLmMgYi94ZW4vYXJjaC94ODYvaHZtL2lycS5jCmlu ZGV4IGE3NzRlZDc0NTAuLmMyOTUxY2NmOGEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v aXJxLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pcnEuYwpAQCAtNjAsNyArNjAsNyBAQCBzdGF0 aWMgdm9pZCBkZWFzc2VydF9pcnEoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaXNhX2lycSkK IHN0YXRpYyB2b2lkIF9faHZtX3BjaV9pbnR4X2Fzc2VydCgKICAgICBzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBpbnQgZGV2aWNlLCB1bnNpZ25lZCBpbnQgaW50eCkKIHsKLSAgICBzdHJ1Y3Qg aHZtX2lycSAqaHZtX2lycSA9ICZkLT5hcmNoLmh2bV9kb21haW4uaXJxOworICAgIHN0cnVjdCBo dm1faXJxICpodm1faXJxID0gaHZtX2RvbWFpbl9pcnEoZCk7CiAgICAgdW5zaWduZWQgaW50IGdz aSwgbGluaywgaXNhX2lycTsKIAogICAgIEFTU0VSVCgoZGV2aWNlIDw9IDMxKSAmJiAoaW50eCA8 PSAzKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgaHZtX3BjaV9pbnR4X2Fzc2VydCgKIHN0YXRp YyB2b2lkIF9faHZtX3BjaV9pbnR4X2RlYXNzZXJ0KAogICAgIHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGludCBkZXZpY2UsIHVuc2lnbmVkIGludCBpbnR4KQogewotICAgIHN0cnVjdCBodm1f aXJxICpodm1faXJxID0gJmQtPmFyY2guaHZtX2RvbWFpbi5pcnE7CisgICAgc3RydWN0IGh2bV9p cnEgKmh2bV9pcnEgPSBodm1fZG9tYWluX2lycShkKTsKICAgICB1bnNpZ25lZCBpbnQgZ3NpLCBs aW5rLCBpc2FfaXJxOwogCiAgICAgQVNTRVJUKChkZXZpY2UgPD0gMzEpICYmIChpbnR4IDw9IDMp KTsKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIGh2bV9wY2lfaW50eF9kZWFzc2VydCgKIHZvaWQg aHZtX2lzYV9pcnFfYXNzZXJ0KAogICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBp c2FfaXJxKQogewotICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0gJmQtPmFyY2guaHZtX2Rv bWFpbi5pcnE7CisgICAgc3RydWN0IGh2bV9pcnEgKmh2bV9pcnEgPSBodm1fZG9tYWluX2lycShk KTsKICAgICB1bnNpZ25lZCBpbnQgZ3NpID0gaHZtX2lzYV9pcnFfdG9fZ3NpKGlzYV9pcnEpOwog CiAgICAgQVNTRVJUKGlzYV9pcnEgPD0gMTUpOwpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgaHZt X2lzYV9pcnFfYXNzZXJ0KAogdm9pZCBodm1faXNhX2lycV9kZWFzc2VydCgKICAgICBzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaXNhX2lycSkKIHsKLSAgICBzdHJ1Y3QgaHZtX2lycSAq aHZtX2lycSA9ICZkLT5hcmNoLmh2bV9kb21haW4uaXJxOworICAgIHN0cnVjdCBodm1faXJxICpo dm1faXJxID0gaHZtX2RvbWFpbl9pcnEoZCk7CiAgICAgdW5zaWduZWQgaW50IGdzaSA9IGh2bV9p c2FfaXJxX3RvX2dzaShpc2FfaXJxKTsKIAogICAgIEFTU0VSVChpc2FfaXJxIDw9IDE1KTsKQEAg LTE1Myw3ICsxNTMsNyBAQCB2b2lkIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KAogc3RhdGljIHZvaWQg aHZtX3NldF9jYWxsYmFja19pcnFfbGV2ZWwoc3RydWN0IHZjcHUgKnYpCiB7CiAgICAgc3RydWN0 IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKLSAgICBzdHJ1Y3QgaHZtX2lycSAqaHZtX2lycSA9ICZk LT5hcmNoLmh2bV9kb21haW4uaXJxOworICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0gaHZt X2RvbWFpbl9pcnEoZCk7CiAgICAgdW5zaWduZWQgaW50IGdzaSwgcGRldiwgcGludHgsIGFzc2Vy dGVkOwogCiAgICAgQVNTRVJUKHYtPnZjcHVfaWQgPT0gMCk7CkBAIC0yMDEsNyArMjAxLDcgQEAg c3RhdGljIHZvaWQgaHZtX3NldF9jYWxsYmFja19pcnFfbGV2ZWwoc3RydWN0IHZjcHUgKnYpCiB2 b2lkIGh2bV9tYXliZV9kZWFzc2VydF9ldnRjaG5faXJxKHZvaWQpCiB7CiAgICAgc3RydWN0IGRv bWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsKLSAgICBzdHJ1Y3QgaHZtX2lycSAqaHZtX2lycSA9 ICZkLT5hcmNoLmh2bV9kb21haW4uaXJxOworICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0g aHZtX2RvbWFpbl9pcnEoZCk7CiAKICAgICBpZiAoIGh2bV9pcnEtPmNhbGxiYWNrX3ZpYV9hc3Nl cnRlZCAmJgogICAgICAgICAgIXZjcHVfaW5mbyhkLT52Y3B1WzBdLCBldnRjaG5fdXBjYWxsX3Bl bmRpbmcpICkKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkIGh2bV9hc3NlcnRfZXZ0Y2huX2lycShz dHJ1Y3QgdmNwdSAqdikKIAogaW50IGh2bV9zZXRfcGNpX2xpbmtfcm91dGUoc3RydWN0IGRvbWFp biAqZCwgdTggbGluaywgdTggaXNhX2lycSkKIHsKLSAgICBzdHJ1Y3QgaHZtX2lycSAqaHZtX2ly cSA9ICZkLT5hcmNoLmh2bV9kb21haW4uaXJxOworICAgIHN0cnVjdCBodm1faXJxICpodm1faXJx ID0gaHZtX2RvbWFpbl9pcnEoZCk7CiAgICAgdTggb2xkX2lzYV9pcnE7CiAgICAgaW50IGk7CiAK QEAgLTMyMyw3ICszMjMsNyBAQCBpbnQgaHZtX2luamVjdF9tc2koc3RydWN0IGRvbWFpbiAqZCwg dWludDY0X3QgYWRkciwgdWludDMyX3QgZGF0YSkKIAogdm9pZCBodm1fc2V0X2NhbGxiYWNrX3Zp YShzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCB2aWEpCiB7Ci0gICAgc3RydWN0IGh2bV9pcnEg Kmh2bV9pcnEgPSAmZC0+YXJjaC5odm1fZG9tYWluLmlycTsKKyAgICBzdHJ1Y3QgaHZtX2lycSAq aHZtX2lycSA9IGh2bV9kb21haW5faXJxKGQpOwogICAgIHVuc2lnbmVkIGludCBnc2k9MCwgcGRl dj0wLCBwaW50eD0wOwogICAgIHVpbnQ4X3QgdmlhX3R5cGU7CiAKQEAgLTQ4Niw3ICs0ODYsNyBA QCB2b2lkIGFyY2hfZXZ0Y2huX2luamVjdChzdHJ1Y3QgdmNwdSAqdikKIAogc3RhdGljIHZvaWQg aXJxX2R1bXAoc3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICBzdHJ1Y3QgaHZtX2lycSAqaHZtX2ly cSA9ICZkLT5hcmNoLmh2bV9kb21haW4uaXJxOworICAgIHN0cnVjdCBodm1faXJxICpodm1faXJx ID0gaHZtX2RvbWFpbl9pcnEoZCk7CiAgICAgaW50IGk7IAogICAgIHByaW50aygiRG9tYWluICVk OlxuIiwgZC0+ZG9tYWluX2lkKTsKICAgICBwcmludGsoIlBDSSAweCUxNi4xNiJQUkl4NjQiJTE2 LjE2IlBSSXg2NApAQCAtNTQxLDcgKzU0MSw3IEBAIF9faW5pdGNhbGwoZHVtcF9pcnFfaW5mb19r ZXlfaW5pdCk7CiAKIHN0YXRpYyBpbnQgaXJxX3NhdmVfcGNpKHN0cnVjdCBkb21haW4gKmQsIGh2 bV9kb21haW5fY29udGV4dF90ICpoKQogewotICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0g JmQtPmFyY2guaHZtX2RvbWFpbi5pcnE7CisgICAgc3RydWN0IGh2bV9pcnEgKmh2bV9pcnEgPSBo dm1fZG9tYWluX2lycShkKTsKICAgICB1bnNpZ25lZCBpbnQgYXNzZXJ0ZWQsIHBkZXYsIHBpbnR4 OwogICAgIGludCByYzsKIApAQCAtNTczLDcgKzU3Myw3IEBAIHN0YXRpYyBpbnQgaXJxX3NhdmVf cGNpKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogCiBzdGF0aWMg aW50IGlycV9zYXZlX2lzYShzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAq aCkKIHsKLSAgICBzdHJ1Y3QgaHZtX2lycSAqaHZtX2lycSA9ICZkLT5hcmNoLmh2bV9kb21haW4u aXJxOworICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0gaHZtX2RvbWFpbl9pcnEoZCk7CiAK ICAgICAvKiBTYXZlIElTQSBJUlEgbGluZXMgKi8KICAgICByZXR1cm4gKCBodm1fc2F2ZV9lbnRy eShJU0FfSVJRLCAwLCBoLCAmaHZtX2lycS0+aXNhX2lycSkgKTsKQEAgLTU4MSw3ICs1ODEsNyBA QCBzdGF0aWMgaW50IGlycV9zYXZlX2lzYShzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2Nv bnRleHRfdCAqaCkKIAogc3RhdGljIGludCBpcnFfc2F2ZV9saW5rKHN0cnVjdCBkb21haW4gKmQs IGh2bV9kb21haW5fY29udGV4dF90ICpoKQogewotICAgIHN0cnVjdCBodm1faXJxICpodm1faXJx ID0gJmQtPmFyY2guaHZtX2RvbWFpbi5pcnE7CisgICAgc3RydWN0IGh2bV9pcnEgKmh2bV9pcnEg PSBodm1fZG9tYWluX2lycShkKTsKIAogICAgIC8qIFNhdmUgUENJLUlTQSBsaW5rIHN0YXRlICov CiAgICAgcmV0dXJuICggaHZtX3NhdmVfZW50cnkoUENJX0xJTkssIDAsIGgsICZodm1faXJxLT5w Y2lfbGluaykgKTsKQEAgLTU4OSw3ICs1ODksNyBAQCBzdGF0aWMgaW50IGlycV9zYXZlX2xpbmso c3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCiAKIHN0YXRpYyBpbnQg aXJxX2xvYWRfcGNpKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQog ewotICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0gJmQtPmFyY2guaHZtX2RvbWFpbi5pcnE7 CisgICAgc3RydWN0IGh2bV9pcnEgKmh2bV9pcnEgPSBodm1fZG9tYWluX2lycShkKTsKICAgICBp bnQgbGluaywgZGV2LCBpbnR4LCBnc2k7CiAKICAgICAvKiBMb2FkIHRoZSBQQ0kgSVJRIGxpbmVz ICovCkBAIC02MjIsNyArNjIyLDcgQEAgc3RhdGljIGludCBpcnFfbG9hZF9wY2koc3RydWN0IGRv bWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCiAKIHN0YXRpYyBpbnQgaXJxX2xvYWRf aXNhKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogewotICAgIHN0 cnVjdCBodm1faXJxICpodm1faXJxID0gJmQtPmFyY2guaHZtX2RvbWFpbi5pcnE7CisgICAgc3Ry dWN0IGh2bV9pcnEgKmh2bV9pcnEgPSBodm1fZG9tYWluX2lycShkKTsKICAgICBpbnQgaXJxOwog CiAgICAgLyogTG9hZCB0aGUgSVNBIElSUSBsaW5lcyAqLwpAQCAtNjQxLDcgKzY0MSw3IEBAIHN0 YXRpYyBpbnQgaXJxX2xvYWRfaXNhKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4 dF90ICpoKQogCiBzdGF0aWMgaW50IGlycV9sb2FkX2xpbmsoc3RydWN0IGRvbWFpbiAqZCwgaHZt X2RvbWFpbl9jb250ZXh0X3QgKmgpCiB7Ci0gICAgc3RydWN0IGh2bV9pcnEgKmh2bV9pcnEgPSAm ZC0+YXJjaC5odm1fZG9tYWluLmlycTsKKyAgICBzdHJ1Y3QgaHZtX2lycSAqaHZtX2lycSA9IGh2 bV9kb21haW5faXJxKGQpOwogICAgIGludCBsaW5rLCBnc2k7CiAKICAgICAvKiBMb2FkIHRoZSBQ Q0ktSVNBIElSUSBsaW5rIHJvdXRpbmcgdGFibGUgKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9odm0vdmlvYXBpYy5jIGIveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMKaW5kZXggMjNhYmRm YzRjNi4uM2U5Mjk0N2FiZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMK KysrIGIveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMKQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0 aWMgdm9pZCB2aW9hcGljX3dyaXRlX3JlZGlyZW50KAogICAgIGludCB0b3Bfd29yZCwgdWludDMy X3QgdmFsKQogewogICAgIHN0cnVjdCBkb21haW4gKmQgPSB2aW9hcGljX2RvbWFpbih2aW9hcGlj KTsKLSAgICBzdHJ1Y3QgaHZtX2lycSAqaHZtX2lycSA9ICZkLT5hcmNoLmh2bV9kb21haW4uaXJx OworICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0gaHZtX2RvbWFpbl9pcnEoZCk7CiAgICAg dW5pb24gdmlvYXBpY19yZWRpcl9lbnRyeSAqcGVudCwgZW50OwogICAgIGludCB1bm1hc2tlZCA9 IDA7CiAKQEAgLTM4OSw3ICszODksNyBAQCB2b2lkIHZpb2FwaWNfaXJxX3Bvc2l0aXZlX2VkZ2Uo c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlycSkKIHZvaWQgdmlvYXBpY191cGRhdGVf RU9JKHN0cnVjdCBkb21haW4gKmQsIHU4IHZlY3RvcikKIHsKICAgICBzdHJ1Y3QgaHZtX3Zpb2Fw aWMgKnZpb2FwaWMgPSBkb21haW5fdmlvYXBpYyhkKTsKLSAgICBzdHJ1Y3QgaHZtX2lycSAqaHZt X2lycSA9ICZkLT5hcmNoLmh2bV9kb21haW4uaXJxOworICAgIHN0cnVjdCBodm1faXJxICpodm1f aXJxID0gaHZtX2RvbWFpbl9pcnEoZCk7CiAgICAgdW5pb24gdmlvYXBpY19yZWRpcl9lbnRyeSAq ZW50OwogICAgIGludCBnc2k7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmxhcGlj LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZsYXBpYy5jCmluZGV4IDE0MzU2YTc4ZmUuLjA1OTBkNmM2 OWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS92bGFwaWMuYwpAQCAtMzczLDcgKzM3Myw3IEBAIHN0cnVjdCB2bGFwaWMgKnZsYXBp Y19sb3dlc3RfcHJpbygKICAgICBzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgdmxhcGlj ICpzb3VyY2UsCiAgICAgaW50IHNob3J0X2hhbmQsIHVpbnQzMl90IGRlc3QsIGJvb2xfdCBkZXN0 X21vZGUpCiB7Ci0gICAgaW50IG9sZCA9IGQtPmFyY2guaHZtX2RvbWFpbi5pcnEucm91bmRfcm9i aW5fcHJldl92Y3B1OworICAgIGludCBvbGQgPSBodm1fZG9tYWluX2lycShkKS0+cm91bmRfcm9i aW5fcHJldl92Y3B1OwogICAgIHVpbnQzMl90IHBwciwgdGFyZ2V0X3BwciA9IFVJTlRfTUFYOwog ICAgIHN0cnVjdCB2bGFwaWMgKnZsYXBpYywgKnRhcmdldCA9IE5VTEw7CiAgICAgc3RydWN0IHZj cHUgKnY7CkBAIC0zOTQsOCArMzk0LDggQEAgc3RydWN0IHZsYXBpYyAqdmxhcGljX2xvd2VzdF9w cmlvKAogICAgIH0gd2hpbGUgKCB2LT52Y3B1X2lkICE9IG9sZCApOwogCiAgICAgaWYgKCB0YXJn ZXQgIT0gTlVMTCApCi0gICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi5pcnEucm91bmRfcm9iaW5f cHJldl92Y3B1ID0KLSAgICAgICAgICAgIHZsYXBpY192Y3B1KHRhcmdldCktPnZjcHVfaWQ7Cisg ICAgICAgIGh2bV9kb21haW5faXJxKGQpLT5yb3VuZF9yb2Jpbl9wcmV2X3ZjcHUgPQorICAgICAg ICAgICB2bGFwaWNfdmNwdSh0YXJnZXQpLT52Y3B1X2lkOwogCiAgICAgcmV0dXJuIHRhcmdldDsK IH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMgYi94ZW4vYXJjaC94ODYvcGh5 c2Rldi5jCmluZGV4IDgxY2Q2Yzk0ZTcuLjZjMTVmOWJmNDkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9waHlzZGV2LmMKKysrIGIveGVuL2FyY2gveDg2L3BoeXNkZXYuYwpAQCAtMzE3LDcgKzMx Nyw3IEBAIHJldF90IGRvX3BoeXNkZXZfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJB TSh2b2lkKSBhcmcpCiAgICAgICAgIGlmICggaXNfaHZtX2RvbWFpbihjdXJyZCkgJiYKICAgICAg ICAgICAgICBkb21haW5fcGlycV90b19lbXVpcnEoY3VycmQsIGVvaS5pcnEpID4gMCApCiAgICAg ICAgIHsKLSAgICAgICAgICAgIHN0cnVjdCBodm1faXJxICpodm1faXJxID0gJmN1cnJkLT5hcmNo Lmh2bV9kb21haW4uaXJxOworICAgICAgICAgICAgc3RydWN0IGh2bV9pcnEgKmh2bV9pcnEgPSBo dm1fZG9tYWluX2lycShjdXJyZCk7CiAgICAgICAgICAgICBpbnQgZ3NpID0gZG9tYWluX3BpcnFf dG9fZW11aXJxKGN1cnJkLCBlb2kuaXJxKTsKIAogICAgICAgICAgICAgLyogaWYgdGhpcyBpcyBh IGxldmVsIGlycSBhbmQgY291bnQgPiAwLCBzZW5kIGFub3RoZXIKZGlmZiAtLWdpdCBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2lvLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pby5jCmlu ZGV4IDA4MDE4M2VhMzEuLmY0OGViMzE0MjAgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2lvLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW8uYwpAQCAtMTk1LDcg KzE5NSw3IEBAIHN0cnVjdCBodm1faXJxX2RwY2kgKmRvbWFpbl9nZXRfaXJxX2RwY2koY29uc3Qg c3RydWN0IGRvbWFpbiAqZCkKICAgICBpZiAoICFkIHx8ICFpc19odm1fZG9tYWluKGQpICkKICAg ICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICByZXR1cm4gZC0+YXJjaC5odm1fZG9tYWluLmlycS5k cGNpOworICAgIHJldHVybiBodm1fZG9tYWluX2lycShkKS0+ZHBjaTsKIH0KIAogdm9pZCBmcmVl X2h2bV9pcnFfZHBjaShzdHJ1Y3QgaHZtX2lycV9kcGNpICpkcGNpKQpAQCAtMzMzLDcgKzMzMyw3 IEBAIGludCBwdF9pcnFfY3JlYXRlX2JpbmQoCiAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgTlJf SFZNX0lSUVM7IGkrKyApCiAgICAgICAgICAgICBJTklUX0xJU1RfSEVBRCgmaHZtX2lycV9kcGNp LT5naXJxW2ldKTsKIAotICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4uaXJxLmRwY2kgPSBodm1f aXJxX2RwY2k7CisgICAgICAgIGh2bV9kb21haW5faXJxKGQpLT5kcGNpID0gaHZtX2lycV9kcGNp OwogICAgIH0KIAogICAgIGluZm8gPSBwaXJxX2dldF9pbmZvKGQsIHBpcnEpOwpAQCAtNzg4LDcg Kzc4OCw3IEBAIHN0YXRpYyBpbnQgX2h2bV9kcGNpX21zaV9lb2koc3RydWN0IGRvbWFpbiAqZCwK IAogdm9pZCBodm1fZHBjaV9tc2lfZW9pKHN0cnVjdCBkb21haW4gKmQsIGludCB2ZWN0b3IpCiB7 Ci0gICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhZC0+YXJjaC5odm1fZG9tYWluLmlycS5kcGNp ICkKKyAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFodm1fZG9tYWluX2lycShkKS0+ZHBjaSAp CiAgICAgICAgcmV0dXJuOwogCiAgICAgc3Bpbl9sb2NrKCZkLT5ldmVudF9sb2NrKTsKQEAgLTc5 OCw3ICs3OTgsNyBAQCB2b2lkIGh2bV9kcGNpX21zaV9lb2koc3RydWN0IGRvbWFpbiAqZCwgaW50 IHZlY3RvcikKIAogc3RhdGljIHZvaWQgaHZtX2RpcnFfYXNzaXN0KHN0cnVjdCBkb21haW4gKmQs IHN0cnVjdCBodm1fcGlycV9kcGNpICpwaXJxX2RwY2kpCiB7Ci0gICAgaWYgKCB1bmxpa2VseSgh ZC0+YXJjaC5odm1fZG9tYWluLmlycS5kcGNpKSApCisgICAgaWYgKCB1bmxpa2VseSghaHZtX2Rv bWFpbl9pcnEoZCktPmRwY2kpICkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgp OwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9w Y2kuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCmluZGV4IGJlZGRkNDI3MDEuLmM4 ZTJkMmQ5YTkgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCisrKyBi L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCkBAIC04MTUsNyArODE1LDcgQEAgc3RhdGlj IGludCBwY2lfY2xlYW5fZHBjaV9pcnFzKHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgICAgICBy ZXR1cm4gcmV0OwogICAgICAgICB9CiAKLSAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLmlycS5k cGNpID0gTlVMTDsKKyAgICAgICAgaHZtX2RvbWFpbl9pcnEoZCktPmRwY2kgPSBOVUxMOwogICAg ICAgICBmcmVlX2h2bV9pcnFfZHBjaShodm1faXJxX2RwY2kpOwogICAgIH0KICAgICBzcGluX3Vu bG9jaygmZC0+ZXZlbnRfbG9jayk7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQveDg2L3Z0ZC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYwpp bmRleCA4YTg5ZjM0NzFmLi44OGE2MGIzMzA3IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQveDg2L3Z0ZC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94 ODYvdnRkLmMKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBmbHVzaF9hbGxfY2FjaGUoKQogc3RhdGlj IGludCBfaHZtX2RwY2lfaXNhaXJxX2VvaShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX3BpcnFfZHBjaSAqcGlycV9kcGNpLCB2b2lk ICphcmcpCiB7Ci0gICAgc3RydWN0IGh2bV9pcnEgKmh2bV9pcnEgPSAmZC0+YXJjaC5odm1fZG9t YWluLmlycTsKKyAgICBzdHJ1Y3QgaHZtX2lycSAqaHZtX2lycSA9IGh2bV9kb21haW5faXJxKGQp OwogICAgIHVuc2lnbmVkIGludCBpc2FpcnEgPSAobG9uZylhcmc7CiAgICAgY29uc3Qgc3RydWN0 IGRldl9pbnR4X2dzaV9saW5rICpkaWdsOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9pcnEuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lycS5oCmluZGV4IDczYjhm YjA0NTcuLjE3YTk1N2Q0YjUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2ly cS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lycS5oCkBAIC05NSw2ICs5NSw3IEBA IHN0cnVjdCBodm1faXJxIHsKICAgICAoKCgoKGRldik8PDIpICsgKChkZXYpPj4zKSArIChpbnR4 KSkgJiAzMSkgKyAxNikKICNkZWZpbmUgaHZtX3BjaV9pbnR4X2xpbmsoZGV2LCBpbnR4KSBcCiAg ICAgKCgoZGV2KSArIChpbnR4KSkgJiAzKQorI2RlZmluZSBodm1fZG9tYWluX2lycShkKSAoJihk KS0+YXJjaC5odm1fZG9tYWluLmlycSkKIAogI2RlZmluZSBodm1faXNhX2lycV90b19nc2koaXNh X2lycSkgKChpc2FfaXJxKSA/IDogMikKIAotLSAKMi4xMS4wIChBcHBsZSBHaXQtODEpCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==