From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: [PATCH v2] drm/exynos/mixer: fix MIXER shadow registry synchronisation code Date: Tue, 19 Mar 2019 14:05:11 +0100 Message-ID: <20190319130511.20729-1-a.hajda@samsung.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id EF9CD89137 for ; Tue, 19 Mar 2019 13:05:21 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , Marian Mihailescu Cc: Marek Szyprowski , linux-samsung-soc@vger.kernel.org, dri-devel@lists.freedesktop.org, Bartlomiej Zolnierkiewicz List-Id: dri-devel@lists.freedesktop.org TUlYRVIgb24gRXh5bm9zNSBTb0NzIHVzZXMgZGlmZmVyZW50IHN5bmNocm9uaXNhdGlvbiBtZXRo b2QgdGhhbiBFeHlub3M0CnRvIHVwZGF0ZSBpbnRlcm5hbCBzdGF0ZSAoc2hhZG93IHJlZ2lzdGVy cykuCkFwcGFyZW50bHkgdGhlIGRyaXZlciBpbXBsZW1lbnRzIGl0IGluY29ycmVjdGx5LiBUaGUg cnVsZSBzaG91bGQgYmUKYXMgZm9sbG93czoKLSBkbyBub3QgcmVxdWVzdCB1cGRhdGluZyByZWdp c3RlcnMgdW50aWwgcHJldmlvdXMgcmVxdWVzdCB3YXMgZmluaXNoZWQsCiAgaWUuIE1YUl9DRkdf TEFZRVJfVVBEQVRFX0NPVU5UIG11c3QgYmUgMC4KLSBiZWZvcmUgc2V0dGluZyByZWdpc3RlcnMg c3luY2hyb25pc2F0aW9uIG9uIFZTWU5DIHNob3VsZCBiZSB0dXJuZWQgb2ZmLAogIGllLiBNWFJf U1RBVFVTX1NZTkNfRU5BQkxFIHNob3VsZCBiZSByZXNldCwKLSBhZnRlciBmaW5pc2hpbmcgTVhS X1NUQVRVU19TWU5DX0VOQUJMRSBzaG91bGQgYmUgc2V0IGFnYWluLgpUaGUgcGF0Y2ggaG9wZWZ1 bGx5IGltcGxlbWVudHMgaXQgY29ycmVjdGx5LgpCZWxvdyBzYW1wbGUga2VybmVsIGxvZyBmcm9t IHBhZ2UgZmF1bHQgY2F1c2VkIGJ5IHRoZSBidWc6CgpbICAgMjUuNjcwMDM4XSBleHlub3Mtc3lz bW11IDE0NjUwMDAwLnN5c21tdTogMTQ0NTAwMDAubWl4ZXI6IFBBR0UgRkFVTFQgb2NjdXJyZWQg YXQgMHgyMjQ3YjgwMApbICAgMjUuNjc3ODg4XSAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0t LS0tLS0tLS0KWyAgIDI1LjY4MjE2NF0ga2VybmVsIEJVRyBhdCAuLi9kcml2ZXJzL2lvbW11L2V4 eW5vcy1pb21tdS5jOjQ1MCEKWyAgIDI1LjY4Nzk3MV0gSW50ZXJuYWwgZXJyb3I6IE9vcHMgLSBC VUc6IDAgWyMxXSBQUkVFTVBUIFNNUCBBUk0KWyAgIDI1LjY5Mzc3OF0gTW9kdWxlcyBsaW5rZWQg aW46ClsgICAyNS42OTY4MTZdIENQVTogNSBQSUQ6IDE1NTMgQ29tbTogZmItcmVsZWFzZV90ZXN0 IE5vdCB0YWludGVkIDUuMC4wLXJjNy0wMTE1Ny1nNWY4NmIxNTY2YmRkICMxMzYKWyAgIDI1Ljcw NTY0Nl0gSGFyZHdhcmUgbmFtZTogU0FNU1VORyBFWFlOT1MgKEZsYXR0ZW5lZCBEZXZpY2UgVHJl ZSkKWyAgIDI1LjcxMTcxMF0gUEMgaXMgYXQgZXh5bm9zX3N5c21tdV9pcnErMHgxYzAvMHgyNjQK WyAgIDI1LjcxNjQ3MF0gTFIgaXMgYXQgbG9ja19pc19oZWxkX3R5cGUrMHg0NC8weDY0Cgp2Mjog YWRkZWQgbWlzc2luZyBNWFJfQ0ZHX0xBWUVSX1VQREFURSBiaXQgc2V0dGluZyBpbiBtaXhlcl9l bmFibGVfc3luYwoKUmVwb3J0ZWQtYnk6IE1hcmlhbiBNaWhhaWxlc2N1IDxtaWhhaWxlc2N1Mm1A Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcu Y29tPgotLS0KSGkgSW5raSBhbmQgTWFyaWFuLAoKVGhpcyBpcyBmaXhlZCB2ZXJzaW9uIG9mIG15 IHByZXZpb3VzIHBhdGNoLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzCmFkZGVkIG1pc3NpbmcgTVhS X0NGR19MQVlFUl9VUERBVEUgc2V0dGluZyBpbiBtaXhlcl9lbmFibGVfc3luYy4KSSBob3BlIHRo aXMgdGltZSBpdCBpcyBjb3JyZWN0LiBJdCBzaG91bGQgc29sdmUgb25lIHBhZ2UgZmF1bHQgaXNz dWUKaW4gTUlYRVIsIE1hcmVrIGlzIHByZXBhcmluZyBmaXggZm9yIGFub3RoZXIgaXNzdWUgKHRv IGxvdyBjbG9jayBzZXQgYnkKZGV2ZnJlcSkuIEkgaG9wZSB3aXRoIGJvdGggcGF0Y2hlcyBwYWdl IGZhdWx0cyB3aWxsIG5vdCBoYXBwZW4gYW55bW9yZSA7KQoKUmVnYXJkcwpBbmRyemVqCi0tLQog ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYyB8IDExMCArKysrKysrKysrKysr KystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX21peGVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jCmluZGV4IDA1NzNlYWIw ZTE5MC4uZjM1ZTRhYjU1YjI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19taXhlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX21peGVyLmMK QEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJyZWdzLXZwLmgiCiAKICNpbmNsdWRlIDxsaW51 eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9rdGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Nw aW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5o PgpAQCAtMzUyLDE1ICszNTMsNjIgQEAgc3RhdGljIHZvaWQgbWl4ZXJfY2ZnX3ZwX2JsZW5kKHN0 cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgsIHVuc2lnbmVkIGludCBhbHBoYSkKIAltaXhlcl9yZWdf d3JpdGUoY3R4LCBNWFJfVklERU9fQ0ZHLCB2YWwpOwogfQogCi1zdGF0aWMgdm9pZCBtaXhlcl92 c3luY19zZXRfdXBkYXRlKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgsIGJvb2wgZW5hYmxlKQor c3RhdGljIGJvb2wgbWl4ZXJfaXNfc3luY2VkKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgpCiB7 Ci0JLyogYmxvY2sgdXBkYXRlIG9uIHZzeW5jICovCi0JbWl4ZXJfcmVnX3dyaXRlbWFzayhjdHgs IE1YUl9TVEFUVVMsIGVuYWJsZSA/Ci0JCQlNWFJfU1RBVFVTX1NZTkNfRU5BQkxFIDogMCwgTVhS X1NUQVRVU19TWU5DX0VOQUJMRSk7CisJdTMyIGJhc2UsIHNoYWRvdzsKIAorCWlmIChjdHgtPm14 cl92ZXIgPT0gTVhSX1ZFUl8xNl8wXzMzXzAgfHwKKwkgICAgY3R4LT5teHJfdmVyID09IE1YUl9W RVJfMTI4XzBfMF8xODQpCisJCXJldHVybiAhKG1peGVyX3JlZ19yZWFkKGN0eCwgTVhSX0NGRykg JgorCQkJIE1YUl9DRkdfTEFZRVJfVVBEQVRFX0NPVU5UX01BU0spOworCisJaWYgKHRlc3RfYml0 KE1YUl9CSVRfVlBfRU5BQkxFRCwgJmN0eC0+ZmxhZ3MpICYmCisJICAgIHZwX3JlZ19yZWFkKGN0 eCwgVlBfU0hBRE9XX1VQREFURSkpCisJCXJldHVybiBmYWxzZTsKKworCWJhc2UgPSBtaXhlcl9y ZWdfcmVhZChjdHgsIE1YUl9DRkcpOworCXNoYWRvdyA9IG1peGVyX3JlZ19yZWFkKGN0eCwgTVhS X0NGR19TKTsKKwlpZiAoYmFzZSAhPSBzaGFkb3cpCisJCXJldHVybiBmYWxzZTsKKworCWJhc2Ug PSBtaXhlcl9yZWdfcmVhZChjdHgsIE1YUl9HUkFQSElDX0JBU0UoMCkpOworCXNoYWRvdyA9IG1p eGVyX3JlZ19yZWFkKGN0eCwgTVhSX0dSQVBISUNfQkFTRV9TKDApKTsKKwlpZiAoYmFzZSAhPSBz aGFkb3cpCisJCXJldHVybiBmYWxzZTsKKworCWJhc2UgPSBtaXhlcl9yZWdfcmVhZChjdHgsIE1Y Ul9HUkFQSElDX0JBU0UoMSkpOworCXNoYWRvdyA9IG1peGVyX3JlZ19yZWFkKGN0eCwgTVhSX0dS QVBISUNfQkFTRV9TKDEpKTsKKwlpZiAoYmFzZSAhPSBzaGFkb3cpCisJCXJldHVybiBmYWxzZTsK KworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW50IG1peGVyX3dhaXRfZm9yX3N5bmMoc3Ry dWN0IG1peGVyX2NvbnRleHQgKmN0eCkKK3sKKwlrdGltZV90IHRpbWVvdXQgPSBrdGltZV9hZGRf dXMoa3RpbWVfZ2V0KCksIDEwMDAwMCk7CisKKwl3aGlsZSAoIW1peGVyX2lzX3N5bmNlZChjdHgp KSB7CisJCXVzbGVlcF9yYW5nZSgxMDAwLCAyMDAwKTsKKwkJaWYgKGt0aW1lX2NvbXBhcmUoa3Rp bWVfZ2V0KCksIHRpbWVvdXQpID4gMCkKKwkJCXJldHVybiAtRVRJTUVET1VUOworCX0KKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIHZvaWQgbWl4ZXJfZGlzYWJsZV9zeW5jKHN0cnVjdCBtaXhlcl9j b250ZXh0ICpjdHgpCit7CisJbWl4ZXJfcmVnX3dyaXRlbWFzayhjdHgsIE1YUl9TVEFUVVMsIDAs IE1YUl9TVEFUVVNfU1lOQ19FTkFCTEUpOworfQorCitzdGF0aWMgdm9pZCBtaXhlcl9lbmFibGVf c3luYyhzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4KQoreworCWlmIChjdHgtPm14cl92ZXIgPT0g TVhSX1ZFUl8xNl8wXzMzXzAgfHwKKwkgICAgY3R4LT5teHJfdmVyID09IE1YUl9WRVJfMTI4XzBf MF8xODQpCisJCW1peGVyX3JlZ193cml0ZW1hc2soY3R4LCBNWFJfQ0ZHLCB+MCwgTVhSX0NGR19M QVlFUl9VUERBVEUpOworCW1peGVyX3JlZ193cml0ZW1hc2soY3R4LCBNWFJfU1RBVFVTLCB+MCwg TVhSX1NUQVRVU19TWU5DX0VOQUJMRSk7CiAJaWYgKHRlc3RfYml0KE1YUl9CSVRfVlBfRU5BQkxF RCwgJmN0eC0+ZmxhZ3MpKQotCQl2cF9yZWdfd3JpdGUoY3R4LCBWUF9TSEFET1dfVVBEQVRFLCBl bmFibGUgPwotCQkJVlBfU0hBRE9XX1VQREFURV9FTkFCTEUgOiAwKTsKKwkJdnBfcmVnX3dyaXRl KGN0eCwgVlBfU0hBRE9XX1VQREFURSwgVlBfU0hBRE9XX1VQREFURV9FTkFCTEUpOwogfQogCiBz dGF0aWMgdm9pZCBtaXhlcl9jZmdfc2NhbihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4LCBpbnQg d2lkdGgsIGludCBoZWlnaHQpCkBAIC00OTgsNyArNTQ2LDYgQEAgc3RhdGljIHZvaWQgdnBfdmlk ZW9fYnVmZmVyKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgsCiAKIAlzcGluX2xvY2tfaXJxc2F2 ZSgmY3R4LT5yZWdfc2xvY2ssIGZsYWdzKTsKIAotCXZwX3JlZ193cml0ZShjdHgsIFZQX1NIQURP V19VUERBVEUsIDEpOwogCS8qIGludGVybGFjZSBvciBwcm9ncmVzc2l2ZSBzY2FuIG1vZGUgKi8K IAl2YWwgPSAodGVzdF9iaXQoTVhSX0JJVF9JTlRFUkxBQ0UsICZjdHgtPmZsYWdzKSA/IH4wIDog MCk7CiAJdnBfcmVnX3dyaXRlbWFzayhjdHgsIFZQX01PREUsIHZhbCwgVlBfTU9ERV9MSU5FX1NL SVApOwpAQCAtNTUzLDExICs2MDAsNiBAQCBzdGF0aWMgdm9pZCB2cF92aWRlb19idWZmZXIoc3Ry dWN0IG1peGVyX2NvbnRleHQgKmN0eCwKIAl2cF9yZWdzX2R1bXAoY3R4KTsKIH0KIAotc3RhdGlj IHZvaWQgbWl4ZXJfbGF5ZXJfdXBkYXRlKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgpCi17Ci0J bWl4ZXJfcmVnX3dyaXRlbWFzayhjdHgsIE1YUl9DRkcsIH4wLCBNWFJfQ0ZHX0xBWUVSX1VQREFU RSk7Ci19Ci0KIHN0YXRpYyB2b2lkIG1peGVyX2dyYXBoX2J1ZmZlcihzdHJ1Y3QgbWl4ZXJfY29u dGV4dCAqY3R4LAogCQkJICAgICAgIHN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpwbGFuZSkKIHsK QEAgLTY0MCwxMSArNjgyLDYgQEAgc3RhdGljIHZvaWQgbWl4ZXJfZ3JhcGhfYnVmZmVyKHN0cnVj dCBtaXhlcl9jb250ZXh0ICpjdHgsCiAJbWl4ZXJfY2ZnX2xheWVyKGN0eCwgd2luLCBwcmlvcml0 eSwgdHJ1ZSk7CiAJbWl4ZXJfY2ZnX2dmeF9ibGVuZChjdHgsIHdpbiwgcGl4ZWxfYWxwaGEsIHN0 YXRlLT5iYXNlLmFscGhhKTsKIAotCS8qIGxheWVyIHVwZGF0ZSBtYW5kYXRvcnkgZm9yIG1peGVy IDE2LjAuMzMuMCAqLwotCWlmIChjdHgtPm14cl92ZXIgPT0gTVhSX1ZFUl8xNl8wXzMzXzAgfHwK LQkJY3R4LT5teHJfdmVyID09IE1YUl9WRVJfMTI4XzBfMF8xODQpCi0JCW1peGVyX2xheWVyX3Vw ZGF0ZShjdHgpOwotCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3R4LT5yZWdfc2xvY2ssIGZs YWdzKTsKIAogCW1peGVyX3JlZ3NfZHVtcChjdHgpOwpAQCAtNzA5LDcgKzc0Niw3IEBAIHN0YXRp YyB2b2lkIG1peGVyX3dpbl9yZXNldChzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4KQogc3RhdGlj IGlycXJldHVybl90IG1peGVyX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIHsKIAlz dHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4ID0gYXJnOwotCXUzMiB2YWwsIGJhc2UsIHNoYWRvdzsK Kwl1MzIgdmFsOwogCiAJc3Bpbl9sb2NrKCZjdHgtPnJlZ19zbG9jayk7CiAKQEAgLTcyMywyNiAr NzYwLDkgQEAgc3RhdGljIGlycXJldHVybl90IG1peGVyX2lycV9oYW5kbGVyKGludCBpcnEsIHZv aWQgKmFyZykKIAkJdmFsICY9IH5NWFJfSU5UX1NUQVRVU19WU1lOQzsKIAogCQkvKiBpbnRlcmxh Y2Ugc2NhbiBuZWVkIHRvIGNoZWNrIHNoYWRvdyByZWdpc3RlciAqLwotCQlpZiAodGVzdF9iaXQo TVhSX0JJVF9JTlRFUkxBQ0UsICZjdHgtPmZsYWdzKSkgewotCQkJaWYgKHRlc3RfYml0KE1YUl9C SVRfVlBfRU5BQkxFRCwgJmN0eC0+ZmxhZ3MpICYmCi0JCQkgICAgdnBfcmVnX3JlYWQoY3R4LCBW UF9TSEFET1dfVVBEQVRFKSkKLQkJCQlnb3RvIG91dDsKLQotCQkJYmFzZSA9IG1peGVyX3JlZ19y ZWFkKGN0eCwgTVhSX0NGRyk7Ci0JCQlzaGFkb3cgPSBtaXhlcl9yZWdfcmVhZChjdHgsIE1YUl9D RkdfUyk7Ci0JCQlpZiAoYmFzZSAhPSBzaGFkb3cpCi0JCQkJZ290byBvdXQ7Ci0KLQkJCWJhc2Ug PSBtaXhlcl9yZWdfcmVhZChjdHgsIE1YUl9HUkFQSElDX0JBU0UoMCkpOwotCQkJc2hhZG93ID0g bWl4ZXJfcmVnX3JlYWQoY3R4LCBNWFJfR1JBUEhJQ19CQVNFX1MoMCkpOwotCQkJaWYgKGJhc2Ug IT0gc2hhZG93KQotCQkJCWdvdG8gb3V0OwotCi0JCQliYXNlID0gbWl4ZXJfcmVnX3JlYWQoY3R4 LCBNWFJfR1JBUEhJQ19CQVNFKDEpKTsKLQkJCXNoYWRvdyA9IG1peGVyX3JlZ19yZWFkKGN0eCwg TVhSX0dSQVBISUNfQkFTRV9TKDEpKTsKLQkJCWlmIChiYXNlICE9IHNoYWRvdykKLQkJCQlnb3Rv IG91dDsKLQkJfQorCQlpZiAodGVzdF9iaXQoTVhSX0JJVF9JTlRFUkxBQ0UsICZjdHgtPmZsYWdz KQorCQkgICAgJiYgIW1peGVyX2lzX3N5bmNlZChjdHgpKQorCQkJZ290byBvdXQ7CiAKIAkJZHJt X2NydGNfaGFuZGxlX3ZibGFuaygmY3R4LT5jcnRjLT5iYXNlKTsKIAl9CkBAIC05MTcsMTIgKzkz NywxNCBAQCBzdGF0aWMgdm9pZCBtaXhlcl9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZXh5bm9zX2Ry bV9jcnRjICpjcnRjKQogCiBzdGF0aWMgdm9pZCBtaXhlcl9hdG9taWNfYmVnaW4oc3RydWN0IGV4 eW5vc19kcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqbWl4ZXJfY3R4 ID0gY3J0Yy0+Y3R4OworCXN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CiAK LQlpZiAoIXRlc3RfYml0KE1YUl9CSVRfUE9XRVJFRCwgJm1peGVyX2N0eC0+ZmxhZ3MpKQorCWlm ICghdGVzdF9iaXQoTVhSX0JJVF9QT1dFUkVELCAmY3R4LT5mbGFncykpCiAJCXJldHVybjsKIAot CW1peGVyX3ZzeW5jX3NldF91cGRhdGUobWl4ZXJfY3R4LCBmYWxzZSk7CisJaWYgKG1peGVyX3dh aXRfZm9yX3N5bmMoY3R4KSkKKwkJZGV2X2VycihjdHgtPmRldiwgInRpbWVvdXQgd2FpdGluZyBm b3IgVlNZTkNcbiIpOworCW1peGVyX2Rpc2FibGVfc3luYyhjdHgpOwogfQogCiBzdGF0aWMgdm9p ZCBtaXhlcl91cGRhdGVfcGxhbmUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YywKQEAgLTk2 NCw3ICs5ODYsNyBAQCBzdGF0aWMgdm9pZCBtaXhlcl9hdG9taWNfZmx1c2goc3RydWN0IGV4eW5v c19kcm1fY3J0YyAqY3J0YykKIAlpZiAoIXRlc3RfYml0KE1YUl9CSVRfUE9XRVJFRCwgJm1peGVy X2N0eC0+ZmxhZ3MpKQogCQlyZXR1cm47CiAKLQltaXhlcl92c3luY19zZXRfdXBkYXRlKG1peGVy X2N0eCwgdHJ1ZSk7CisJbWl4ZXJfZW5hYmxlX3N5bmMobWl4ZXJfY3R4KTsKIAlleHlub3NfY3J0 Y19oYW5kbGVfZXZlbnQoY3J0Yyk7CiB9CiAKQEAgLTk3OSw3ICsxMDAxLDcgQEAgc3RhdGljIHZv aWQgbWl4ZXJfZW5hYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCiAKIAlleHlub3Nf ZHJtX3BpcGVfY2xrX2VuYWJsZShjcnRjLCB0cnVlKTsKIAotCW1peGVyX3ZzeW5jX3NldF91cGRh dGUoY3R4LCBmYWxzZSk7CisJbWl4ZXJfZGlzYWJsZV9zeW5jKGN0eCk7CiAKIAltaXhlcl9yZWdf d3JpdGVtYXNrKGN0eCwgTVhSX1NUQVRVUywgfjAsIE1YUl9TVEFUVVNfU09GVF9SRVNFVCk7CiAK QEAgLTk5Miw3ICsxMDE0LDcgQEAgc3RhdGljIHZvaWQgbWl4ZXJfZW5hYmxlKHN0cnVjdCBleHlu b3NfZHJtX2NydGMgKmNydGMpCiAKIAltaXhlcl9jb21taXQoY3R4KTsKIAotCW1peGVyX3ZzeW5j X3NldF91cGRhdGUoY3R4LCB0cnVlKTsKKwltaXhlcl9lbmFibGVfc3luYyhjdHgpOwogCiAJc2V0 X2JpdChNWFJfQklUX1BPV0VSRUQsICZjdHgtPmZsYWdzKTsKIH0KLS0gCjIuMTcuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs