From mboxrd@z Thu Jan 1 00:00:00 1970 From: Qiang Yu Subject: [PATCH v3 xserver 3/4] modesetting: move common page flip handle to pageflip.c Date: Mon, 22 Aug 2016 11:53:57 +0800 Message-ID: <1471838038-16382-4-git-send-email-Qiang.Yu@amd.com> References: <1471838038-16382-1-git-send-email-Qiang.Yu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1471838038-16382-1-git-send-email-Qiang.Yu-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: xorg-devel-bounces-go0+a7rfsptAfugRpC6u6w@public.gmane.org Sender: "xorg-devel" To: xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org Cc: Qiang Yu , michel-otUistvHUpPR7s880joybQ@public.gmane.org, emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: amd-gfx.lists.freedesktop.org VGhlIGNvbW1vbiBwYWdlIGZsaXAgaGFuZGxlIGZyYW1ld29yayBjYW4gYmUgc2hhcmVkIHdpdGgg RFJJMgpwYWdlIGZsaXAuCgpTaWduZWQtb2ZmLWJ5OiBRaWFuZyBZdSA8UWlhbmcuWXVAYW1kLmNv bT4KLS0tCiBody94ZnJlZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvZHJpdmVyLmggICB8ICAyOCAt LS0tLS0tLQogaHcveGZyZWU4Ni9kcml2ZXJzL21vZGVzZXR0aW5nL3BhZ2VmbGlwLmMgfCAxMDIg KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBody94ZnJlZTg2L2RyaXZlcnMvbW9kZXNl dHRpbmcvcHJlc2VudC5jICB8ICA2MyArKystLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdl ZCwgMTA0IGluc2VydGlvbnMoKyksIDg5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2h3L3hm cmVlODYvZHJpdmVycy9tb2Rlc2V0dGluZy9kcml2ZXIuaCBiL2h3L3hmcmVlODYvZHJpdmVycy9t b2Rlc2V0dGluZy9kcml2ZXIuaAppbmRleCBjMGQ4MGE4Li4zOGYwZWMwIDEwMDY0NAotLS0gYS9o dy94ZnJlZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvZHJpdmVyLmgKKysrIGIvaHcveGZyZWU4Ni9k cml2ZXJzL21vZGVzZXR0aW5nL2RyaXZlci5oCkBAIC0xNTYsMzQgKzE1Niw2IEBAIEJvb2wgbXNf cHJlc2VudF9zY3JlZW5faW5pdChTY3JlZW5QdHIgc2NyZWVuKTsKIAogI2lmZGVmIEdMQU1PUgog Ci0vKgotICogRXZlbnQgZGF0YSBmb3IgYW4gaW4gcHJvZ3Jlc3MgZmxpcC4KLSAqIFRoaXMgY29u dGFpbnMgYSBwb2ludGVyIHRvIHRoZSB2YmxhbmsgZXZlbnQsCi0gKiBhbmQgaW5mb3JtYXRpb24g YWJvdXQgdGhlIGZsaXAgaW4gcHJvZ3Jlc3MuCi0gKiBhIHJlZmVyZW5jZSB0byB0aGlzIGlzIHN0 b3JlZCBpbiB0aGUgcGVyLWNydGMKLSAqIGZsaXBzLgotICovCi1zdHJ1Y3QgbXNfZmxpcGRhdGEg ewotICAgIFNjcmVlblB0ciBzY3JlZW47Ci0gICAgdm9pZCAqZXZlbnQ7Ci0gICAgLyogbnVtYmVy IG9mIENSVEMgZXZlbnRzIHJlZmVyZW5jaW5nIHRoaXMgKi8KLSAgICBpbnQgZmxpcF9jb3VudDsK LSAgICB1aW50NjRfdCBmZV9tc2M7Ci0gICAgdWludDY0X3QgZmVfdXNlYzsKLSAgICB1aW50MzJf dCBvbGRfZmJfaWQ7Ci19OwotCi0vKgotICogUGVyIGNydGMgcGFnZWZsaXBwaW5nIGluZm9tYXRp b24sCi0gKiBUaGVzZSBhcmUgc3VibWl0dGVkIHRvIHRoZSBxdWV1aW5nIGNvZGUKLSAqIG9uZSBv ZiB0aGVtIHBlciBjcnRjIHBlciBmbGlwLgotICovCi1zdHJ1Y3QgbXNfY3J0Y19wYWdlZmxpcCB7 Ci0gICAgQm9vbCBvbl9yZWZlcmVuY2VfY3J0YzsKLSAgICAvKiByZWZlcmVuY2UgdG8gdGhlIG1z X2ZsaXBkYXRhICovCi0gICAgc3RydWN0IG1zX2ZsaXBkYXRhICpmbGlwZGF0YTsKLX07Ci0KIHR5 cGVkZWYgdm9pZCAoKm1zX3BhZ2VmbGlwX2hhbmRsZXJfcHJvYykodWludDY0X3QgZnJhbWUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHVzZWMsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpOwpkaWZm IC0tZ2l0IGEvaHcveGZyZWU4Ni9kcml2ZXJzL21vZGVzZXR0aW5nL3BhZ2VmbGlwLmMgYi9ody94 ZnJlZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvcGFnZWZsaXAuYwppbmRleCA0NTQ5NzkyLi41ZjM1 OTk5IDEwMDY0NAotLS0gYS9ody94ZnJlZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvcGFnZWZsaXAu YworKysgYi9ody94ZnJlZTg2L2RyaXZlcnMvbW9kZXNldHRpbmcvcGFnZWZsaXAuYwpAQCAtMzIs NiArMzIsOTcgQEAKICNpZmRlZiBHTEFNT1IKIAogLyoKKyAqIEV2ZW50IGRhdGEgZm9yIGFuIGlu IHByb2dyZXNzIGZsaXAuCisgKiBUaGlzIGNvbnRhaW5zIGEgcG9pbnRlciB0byB0aGUgdmJsYW5r IGV2ZW50LAorICogYW5kIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmbGlwIGluIHByb2dyZXNzLgor ICogYSByZWZlcmVuY2UgdG8gdGhpcyBpcyBzdG9yZWQgaW4gdGhlIHBlci1jcnRjCisgKiBmbGlw cy4KKyAqLworc3RydWN0IG1zX2ZsaXBkYXRhIHsKKyAgICBTY3JlZW5QdHIgc2NyZWVuOworICAg IHZvaWQgKmV2ZW50OworICAgIG1zX3BhZ2VmbGlwX2hhbmRsZXJfcHJvYyBldmVudF9oYW5kbGVy OworICAgIG1zX3BhZ2VmbGlwX2Fib3J0X3Byb2MgYWJvcnRfaGFuZGxlcjsKKyAgICAvKiBudW1i ZXIgb2YgQ1JUQyBldmVudHMgcmVmZXJlbmNpbmcgdGhpcyAqLworICAgIGludCBmbGlwX2NvdW50 OworICAgIHVpbnQ2NF90IGZlX21zYzsKKyAgICB1aW50NjRfdCBmZV91c2VjOworICAgIHVpbnQz Ml90IG9sZF9mYl9pZDsKK307CisKKy8qCisgKiBQZXIgY3J0YyBwYWdlZmxpcHBpbmcgaW5mb21h dGlvbiwKKyAqIFRoZXNlIGFyZSBzdWJtaXR0ZWQgdG8gdGhlIHF1ZXVpbmcgY29kZQorICogb25l IG9mIHRoZW0gcGVyIGNydGMgcGVyIGZsaXAuCisgKi8KK3N0cnVjdCBtc19jcnRjX3BhZ2VmbGlw IHsKKyAgICBCb29sIG9uX3JlZmVyZW5jZV9jcnRjOworICAgIC8qIHJlZmVyZW5jZSB0byB0aGUg bXNfZmxpcGRhdGEgKi8KKyAgICBzdHJ1Y3QgbXNfZmxpcGRhdGEgKmZsaXBkYXRhOworfTsKKwor LyoqCisgKiBGcmVlIGFuIG1zX2NydGNfcGFnZWZsaXAuCisgKgorICogRHJvcHMgdGhlIHJlZmVy ZW5jZSBjb3VudCBvbiB0aGUgZmxpcGRhdGEuCisgKi8KK3N0YXRpYyB2b2lkCittc19wYWdlZmxp cF9mcmVlKHN0cnVjdCBtc19jcnRjX3BhZ2VmbGlwICpmbGlwKQoreworICAgIHN0cnVjdCBtc19m bGlwZGF0YSAqZmxpcGRhdGEgPSBmbGlwLT5mbGlwZGF0YTsKKworICAgIGZyZWUoZmxpcCk7Cisg ICAgaWYgKC0tZmxpcGRhdGEtPmZsaXBfY291bnQgPiAwKQorICAgICAgICByZXR1cm47CisgICAg ZnJlZShmbGlwZGF0YSk7Cit9CisKKy8qKgorICogQ2FsbGJhY2sgZm9yIHRoZSBEUk0gZXZlbnQg cXVldWUgd2hlbiBhIHNpbmdsZSBmbGlwIGhhcyBjb21wbGV0ZWQKKyAqCisgKiBPbmNlIHRoZSBm bGlwIGhhcyBiZWVuIGNvbXBsZXRlZCBvbiBhbGwgcGlwZXMsIG5vdGlmeSB0aGUKKyAqIGV4dGVu c2lvbiBjb2RlIHRlbGxpbmcgaXQgd2hlbiB0aGF0IGhhcHBlbmVkCisgKi8KK3N0YXRpYyB2b2lk Cittc19wYWdlZmxpcF9oYW5kbGVyKHVpbnQ2NF90IG1zYywgdWludDY0X3QgdXN0LCB2b2lkICpk YXRhKQoreworICAgIHN0cnVjdCBtc19jcnRjX3BhZ2VmbGlwICpmbGlwID0gZGF0YTsKKyAgICBz dHJ1Y3QgbXNfZmxpcGRhdGEgKmZsaXBkYXRhID0gZmxpcC0+ZmxpcGRhdGE7CisgICAgU2NyZWVu UHRyIHNjcmVlbiA9IGZsaXBkYXRhLT5zY3JlZW47CisgICAgU2NybkluZm9QdHIgc2NybiA9IHhm ODZTY3JlZW5Ub1Njcm4oc2NyZWVuKTsKKyAgICBtb2Rlc2V0dGluZ1B0ciBtcyA9IG1vZGVzZXR0 aW5nUFRSKHNjcm4pOworCisgICAgaWYgKGZsaXAtPm9uX3JlZmVyZW5jZV9jcnRjKSB7CisgICAg ICAgIGZsaXBkYXRhLT5mZV9tc2MgPSBtc2M7CisgICAgICAgIGZsaXBkYXRhLT5mZV91c2VjID0g dXN0OworICAgIH0KKworICAgIGlmIChmbGlwZGF0YS0+ZmxpcF9jb3VudCA9PSAxKSB7CisgICAg ICAgIGZsaXBkYXRhLT5ldmVudF9oYW5kbGVyKGZsaXBkYXRhLT5mZV9tc2MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZsaXBkYXRhLT5mZV91c2VjLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmbGlwZGF0YS0+ZXZlbnQpOworCisgICAgICAgIGRybU1vZGVSbUZC KG1zLT5mZCwgZmxpcGRhdGEtPm9sZF9mYl9pZCk7CisgICAgfQorICAgIG1zX3BhZ2VmbGlwX2Zy ZWUoZmxpcCk7Cit9CisKKy8qCisgKiBDYWxsYmFjayBmb3IgdGhlIERSTSBxdWV1ZSBhYm9ydCBj b2RlLiAgQSBmbGlwIGhhcyBiZWVuIGFib3J0ZWQuCisgKi8KK3N0YXRpYyB2b2lkCittc19wYWdl ZmxpcF9hYm9ydCh2b2lkICpkYXRhKQoreworICAgIHN0cnVjdCBtc19jcnRjX3BhZ2VmbGlwICpm bGlwID0gZGF0YTsKKyAgICBzdHJ1Y3QgbXNfZmxpcGRhdGEgKmZsaXBkYXRhID0gZmxpcC0+Zmxp cGRhdGE7CisKKyAgICBpZiAoZmxpcGRhdGEtPmZsaXBfY291bnQgPT0gMSkKKyAgICAgICAgZmxp cGRhdGEtPmFib3J0X2hhbmRsZXIoZmxpcGRhdGEtPmV2ZW50KTsKKworICAgIG1zX3BhZ2VmbGlw X2ZyZWUoZmxpcCk7Cit9CisKKy8qCiAgKiBGbHVzaCB0aGUgRFJNIGV2ZW50IHF1ZXVlIHdoZW4g ZnVsbDsgbWFrZXMgc3BhY2UgZm9yIG5ldyBldmVudHMuCiAgKgogICogUmV0dXJucyBhIG5lZ2F0 aXZlIHZhbHVlIG9uIGVycm9yLCAwIGlmIHRoZXJlIHdhcyBub3RoaW5nIHRvIHByb2Nlc3MsCkBA IC02OCw5ICsxNTksNyBAQCBtc19mbHVzaF9kcm1fZXZlbnRzKFNjcmVlblB0ciBzY3JlZW4pCiBz dGF0aWMgQm9vbAogcXVldWVfZmxpcF9vbl9jcnRjKFNjcmVlblB0ciBzY3JlZW4sIHhmODZDcnRj UHRyIGNydGMsCiAgICAgICAgICAgICAgICAgICAgc3RydWN0IG1zX2ZsaXBkYXRhICpmbGlwZGF0 YSwKLSAgICAgICAgICAgICAgICAgICBpbnQgcmVmX2NydGNfdmJsYW5rX3BpcGUsIHVpbnQzMl90 IGZsYWdzLAotICAgICAgICAgICAgICAgICAgIG1zX3BhZ2VmbGlwX2hhbmRsZXJfcHJvYyBwYWdl ZmxpcF9oYW5kbGVyLAotICAgICAgICAgICAgICAgICAgIG1zX3BhZ2VmbGlwX2Fib3J0X3Byb2Mg cGFnZWZsaXBfYWJvcnQpCisgICAgICAgICAgICAgICAgICAgaW50IHJlZl9jcnRjX3ZibGFua19w aXBlLCB1aW50MzJfdCBmbGFncykKIHsKICAgICBTY3JuSW5mb1B0ciBzY3JuID0geGY4NlNjcmVl blRvU2NybihzY3JlZW4pOwogICAgIG1vZGVzZXR0aW5nUHRyIG1zID0gbW9kZXNldHRpbmdQVFIo c2Nybik7CkBAIC05Miw3ICsxODEsNyBAQCBxdWV1ZV9mbGlwX29uX2NydGMoU2NyZWVuUHRyIHNj cmVlbiwgeGY4NkNydGNQdHIgY3J0YywKICAgICBmbGlwLT5vbl9yZWZlcmVuY2VfY3J0YyA9IChk cm1tb2RlX2NydGMtPnZibGFua19waXBlID09IHJlZl9jcnRjX3ZibGFua19waXBlKTsKICAgICBm bGlwLT5mbGlwZGF0YSA9IGZsaXBkYXRhOwogCi0gICAgc2VxID0gbXNfZHJtX3F1ZXVlX2FsbG9j KGNydGMsIGZsaXAsIHBhZ2VmbGlwX2hhbmRsZXIsIHBhZ2VmbGlwX2Fib3J0KTsKKyAgICBzZXEg PSBtc19kcm1fcXVldWVfYWxsb2MoY3J0YywgZmxpcCwgbXNfcGFnZWZsaXBfaGFuZGxlciwgbXNf cGFnZWZsaXBfYWJvcnQpOwogICAgIGlmICghc2VxKSB7CiAgICAgICAgIGZyZWUoZmxpcCk7CiAg ICAgICAgIHJldHVybiBGQUxTRTsKQEAgLTE2NCw2ICsyNTMsOCBAQCBtc19kb19wYWdlZmxpcChT Y3JlZW5QdHIgc2NyZWVuLAogCiAgICAgZmxpcGRhdGEtPmV2ZW50ID0gZXZlbnQ7CiAgICAgZmxp cGRhdGEtPnNjcmVlbiA9IHNjcmVlbjsKKyAgICBmbGlwZGF0YS0+ZXZlbnRfaGFuZGxlciA9IHBh Z2VmbGlwX2hhbmRsZXI7CisgICAgZmxpcGRhdGEtPmFib3J0X2hhbmRsZXIgPSBwYWdlZmxpcF9h Ym9ydDsKIAogICAgIC8qCiAgICAgICogVGFrZSBhIGxvY2FsIHJlZmVyZW5jZSBvbiBmbGlwZGF0 YS4KQEAgLTIwNiw4ICsyOTcsNyBAQCBtc19kb19wYWdlZmxpcChTY3JlZW5QdHIgc2NyZWVuLAog CiAgICAgICAgIGlmICghcXVldWVfZmxpcF9vbl9jcnRjKHNjcmVlbiwgY3J0YywgZmxpcGRhdGEs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9jcnRjX3ZibGFua19waXBlLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgcGFnZWZsaXBfaGFuZGxlciwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZWZsaXBfYWJvcnQpKSB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSkgewogICAgICAgICAgICAgZ290byBl cnJvcl91bmRvOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvaHcveGZyZWU4Ni9kcml2 ZXJzL21vZGVzZXR0aW5nL3ByZXNlbnQuYyBiL2h3L3hmcmVlODYvZHJpdmVycy9tb2Rlc2V0dGlu Zy9wcmVzZW50LmMKaW5kZXggMThjODJjZC4uZGVlZTFmMSAxMDA2NDQKLS0tIGEvaHcveGZyZWU4 Ni9kcml2ZXJzL21vZGVzZXR0aW5nL3ByZXNlbnQuYworKysgYi9ody94ZnJlZTg2L2RyaXZlcnMv bW9kZXNldHRpbmcvcHJlc2VudC5jCkBAIC0xOTIsNzcgKzE5MiwzMCBAQCBtc19wcmVzZW50X2Zs dXNoKFdpbmRvd1B0ciB3aW5kb3cpCiAjaWZkZWYgR0xBTU9SCiAKIC8qKgotICogRnJlZSBhbiBt c19jcnRjX3BhZ2VmbGlwLgotICoKLSAqIERyb3BzIHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhl IGZsaXBkYXRhLgotICovCi1zdGF0aWMgdm9pZAotbXNfcHJlc2VudF9mbGlwX2ZyZWUoc3RydWN0 IG1zX2NydGNfcGFnZWZsaXAgKmZsaXApCi17Ci0gICAgc3RydWN0IG1zX2ZsaXBkYXRhICpmbGlw ZGF0YSA9IGZsaXAtPmZsaXBkYXRhOwotCi0gICAgZnJlZShmbGlwKTsKLSAgICBpZiAoLS1mbGlw ZGF0YS0+ZmxpcF9jb3VudCA+IDApCi0gICAgICAgIHJldHVybjsKLSAgICBmcmVlKGZsaXBkYXRh KTsKLX0KLQotLyoqCi0gKiBDYWxsYmFjayBmb3IgdGhlIERSTSBldmVudCBxdWV1ZSB3aGVuIGEg c2luZ2xlIGZsaXAgaGFzIGNvbXBsZXRlZAotICoKLSAqIE9uY2UgdGhlIGZsaXAgaGFzIGJlZW4g Y29tcGxldGVkIG9uIGFsbCBwaXBlcywgbm90aWZ5IHRoZQorICogQ2FsbGJhY2sgZm9yIHRoZSBm bGlwIGhhcyBiZWVuIGNvbXBsZXRlZCBvbiBhbGwgcGlwZXMsIG5vdGlmeSB0aGUKICAqIGV4dGVu c2lvbiBjb2RlIHRlbGxpbmcgaXQgd2hlbiB0aGF0IGhhcHBlbmVkCiAgKi8KIHN0YXRpYyB2b2lk CiBtc19wcmVzZW50X2ZsaXBfaGFuZGxlcih1aW50NjRfdCBtc2MsIHVpbnQ2NF90IHVzdCwgdm9p ZCAqZGF0YSkKIHsKLSAgICBzdHJ1Y3QgbXNfY3J0Y19wYWdlZmxpcCAqZmxpcCA9IGRhdGE7Ci0g ICAgU2NyZWVuUHRyIHNjcmVlbiA9IGZsaXAtPmZsaXBkYXRhLT5zY3JlZW47Ci0gICAgU2Nybklu Zm9QdHIgc2NybiA9IHhmODZTY3JlZW5Ub1Njcm4oc2NyZWVuKTsKLSAgICBtb2Rlc2V0dGluZ1B0 ciBtcyA9IG1vZGVzZXR0aW5nUFRSKHNjcm4pOwotICAgIHN0cnVjdCBtc19mbGlwZGF0YSAqZmxp cGRhdGEgPSBmbGlwLT5mbGlwZGF0YTsKKyAgICBzdHJ1Y3QgbXNfcHJlc2VudF92YmxhbmtfZXZl bnQgKmV2ZW50ID0gZGF0YTsKIAotICAgIERlYnVnUHJlc2VudCgoIlx0XHRtczpmaCAlbGxkIGMg JWQgbXNjICVsbHUgdXN0ICVsbHVcbiIsCi0gICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSBm bGlwZGF0YS0+ZXZlbnQtPmV2ZW50X2lkLAotICAgICAgICAgICAgICAgICAgZmxpcGRhdGEtPmZs aXBfY291bnQsCisgICAgRGVidWdQcmVzZW50KCgiXHRcdG1zOmZjICVsbGQgbXNjICVsbHUgdXN0 ICVsbHVcbiIsCisgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSBldmVudC0+ZXZlbnRfaWQs CiAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSBtc2MsIChsb25nIGxvbmcpIHVzdCkpOwog Ci0gICAgaWYgKGZsaXAtPm9uX3JlZmVyZW5jZV9jcnRjKSB7Ci0gICAgICAgIGZsaXBkYXRhLT5m ZV9tc2MgPSBtc2M7Ci0gICAgICAgIGZsaXBkYXRhLT5mZV91c2VjID0gdXN0OwotICAgIH0KLQot ICAgIGlmIChmbGlwZGF0YS0+ZmxpcF9jb3VudCA9PSAxKSB7Ci0gICAgICAgIERlYnVnUHJlc2Vu dCgoIlx0XHRtczpmYyAlbGxkIGMgJWQgbXNjICVsbHUgdXN0ICVsbHVcbiIsCi0gICAgICAgICAg ICAgICAgICAgICAgKGxvbmcgbG9uZykgZmxpcGRhdGEtPmV2ZW50LT5ldmVudF9pZCwKLSAgICAg ICAgICAgICAgICAgICAgICBmbGlwZGF0YS0+ZmxpcF9jb3VudCwKLSAgICAgICAgICAgICAgICAg ICAgICAobG9uZyBsb25nKSBmbGlwZGF0YS0+ZmVfbXNjLCAobG9uZyBsb25nKSBmbGlwZGF0YS0+ ZmVfdXNlYykpOwotCi0KLSAgICAgICAgbXNfcHJlc2VudF92YmxhbmtfaGFuZGxlcihmbGlwZGF0 YS0+ZmVfbXNjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsaXBkYXRhLT5m ZV91c2VjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsaXBkYXRhLT5ldmVu dCk7Ci0KLSAgICAgICAgZHJtTW9kZVJtRkIobXMtPmZkLCBmbGlwZGF0YS0+b2xkX2ZiX2lkKTsK LSAgICB9Ci0gICAgbXNfcHJlc2VudF9mbGlwX2ZyZWUoZmxpcCk7CisgICAgbXNfcHJlc2VudF92 YmxhbmtfaGFuZGxlcihtc2MsIHVzdCwgZXZlbnQpOwogfQogCiAvKgotICogQ2FsbGJhY2sgZm9y IHRoZSBEUk0gcXVldWUgYWJvcnQgY29kZS4gIEEgZmxpcCBoYXMgYmVlbiBhYm9ydGVkLgorICog Q2FsbGJhY2sgZm9yIHRoZSBmbGlwIGhhcyBiZWVuIGFib3J0ZWQuCiAgKi8KIHN0YXRpYyB2b2lk CiBtc19wcmVzZW50X2ZsaXBfYWJvcnQodm9pZCAqZGF0YSkKIHsKLSAgICBzdHJ1Y3QgbXNfY3J0 Y19wYWdlZmxpcCAqZmxpcCA9IGRhdGE7Ci0gICAgc3RydWN0IG1zX2ZsaXBkYXRhICpmbGlwZGF0 YSA9IGZsaXAtPmZsaXBkYXRhOwotCi0gICAgRGVidWdQcmVzZW50KCgiXHRcdG1zOmZhICVsbGQg YyAlZFxuIiwgKGxvbmcgbG9uZykgZmxpcGRhdGEtPmV2ZW50LT5ldmVudF9pZCwgZmxpcGRhdGEt PmZsaXBfY291bnQpKTsKLQotICAgIGlmIChmbGlwZGF0YS0+ZmxpcF9jb3VudCA9PSAxKQotICAg ICAgICBmcmVlKGZsaXBkYXRhLT5ldmVudCk7CisgICAgc3RydWN0IG1zX3ByZXNlbnRfdmJsYW5r X2V2ZW50ICpldmVudCA9IGRhdGE7CiAKLSAgICBtc19wcmVzZW50X2ZsaXBfZnJlZShmbGlwKTsK KyAgICBmcmVlKGV2ZW50KTsKIH0KIAogLyoKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp4b3JnLWRldmVsQGxpc3RzLngub3JnOiBYLk9y ZyBkZXZlbG9wbWVudApBcmNoaXZlczogaHR0cDovL2xpc3RzLngub3JnL2FyY2hpdmVzL3hvcmct ZGV2ZWwKSW5mbzogaHR0cHM6Ly9saXN0cy54Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hvcmctZGV2 ZWw=