From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 9/9] drm/i915: Add render decompression support Date: Wed, 4 Jan 2017 20:42:32 +0200 Message-ID: <20170104184232.23048-10-ville.syrjala@linux.intel.com> References: <20170104184232.23048-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170104184232.23048-1-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Ben Widawsky , Vandana Kannan , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClNL TCsgZGlzcGxheSBlbmdpbmUgY2FuIHNjYW4gb3V0IGNlcnRhaW4ga2luZHMgb2YgY29tcHJlc3Nl ZCBzdXJmYWNlcwpwcm9kdWNlZCBieSB0aGUgcmVuZGVyIGVuZ2luZS4gVGhpcyBpbnZvbHZlZCB0 ZWxsaW5nIHRoZSBkaXNwbGF5IGVuZ2luZQp0aGUgbG9jYXRpb24gb2YgdGhlIGNvbG9yIGNvbnRy b2wgc3VyZmFlIChDQ1MpIHdoaWNoIGRlc2NyaWJlcwp3aGljaCBwYXJ0cyBvZiB0aGUgbWFpbiBz dXJmYWNlIGFyZSBjb21wcmVzc2VkIGFuZCB3aGljaCBhcmUgbm90LiBUaGUKbG9jYXRpb24gb2Yg Q0NTIGlzIHByb3ZpZGVkIGJ5IHVzZXJzcGFjZSBhcyBqdXN0IGFub3RoZXIgcGxhbmUgd2l0aCBp dHMKb3duIG9mZnNldC4KCkFkZCB0aGUgcmVxdWlyZWQgc3R1ZmYgdG8gdmFsaWRhdGUgdGhlIHVz ZXIgcHJvdmlkZWQgQVVYIHBsYW5lIG1ldGFkYXRhCmFuZCBjb252ZXJ0IHRoZSB1c2VyIHByb3Zp ZGVkIGxpbmVhciBvZmZzZXQgaW50byBzb21ldGhpbmcgdGhlIGhhcmR3YXJlCmNhbiBjb25zdW1l LgoKRHVlIHRvIGhhcmR3YXJlIGxpbWl0YXRpb25zIHdlIHJlcXVpcmUgdGhhdCB0aGUgbWFpbiBz dXJmYWNlIGFuZAp0aGUgQVVYIHN1cmZhY2UgKENDUykgYmUgcGFydCBvZiB0aGUgc2FtZSBiby4g VGhlIGhhcmR3YXJlIGFsc28KbWFrZXMgbGlmZSBoYXJkIGJ5IG5vdCBhbGxvd2luZyB5b3UgdG8g cHJvdmlkZSBzZXBhcmF0ZSB4L3kgb2Zmc2V0cwpmb3IgdGhlIG1haW4gYW5kIEFVWCBzdXJmYWNl cyAoZXhjcGV0IHdpdGggTlYxMiksIHNvIGZpbmRpbmcgc3VpdGFibGUKb2Zmc2V0cyBmb3IgYm90 aCByZXF1aXJlcyBhIGJpdCBvZiB3b3JrLiBBc3N1bWluZyB3ZSBzdGlsbCB3YW50IGtlZXAKcGxh eWluZyB0cmlja3Mgd2l0aCB0aGUgb2Zmc2V0cy4gSSd2ZSBqdXN0IGdvbmUgd2l0aCBhIGR1bWIg InNlYXJjaApiYWNrd2FyZCBmb3Igc3VpdGFibGUgb2Zmc2V0cyIgYXBwcm9hY2gsIHdoaWNoIGlz IGZhciBmcm9tIG9wdGltYWwsCmJ1dCBpdCB3b3Jrcy4KCkFsc28gbm90IGFsbCBwbGFuZXMgd2ls bCBiZSBjYXBhYmxlIG9mIHNjYW5uaW5nIG91dCBjb21wcmVzc2VkIHN1cmZhY2VzLAphbmQgZWcu IDkwLzI3MCBkZWdyZWUgcm90YXRpb24gaXMgbm90IHN1cHBvcnRlZCBpbiBjb21iaW5hdGlvbiB3 aXRoCmRlY29tcHJlc3Npb24gZWl0aGVyLgoKVGhpcyBwYXRjaCBtYXkgY29udGFpbiB3b3JrIGZy b20gYXQgbGVhc3QgdGhlIGZvbGxvd2luZyBwZW9wbGU6CiogVmFuZGFuYSBLYW5uYW4gPHZhbmRh bmEua2FubmFuQGludGVsLmNvbT4KKiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Ciog QmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0PgoKQ2M6IFZhbmRhbmEgS2FubmFuIDx2YW5k YW5hLmthbm5hbkBpbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+ CkNjOiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+CkNjOiBKYXNvbiBFa3N0cmFuZCA8 amFzb25Aamxla3N0cmFuZC5uZXQ+ClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaCAgICAgIHwgIDIyICsrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyB8IDIxOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYyAgfCAgIDUgKwogNCBmaWxlcyBjaGFuZ2VkLCAyNDAgaW5zZXJ0aW9u cygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggMDA5NzBh YTc3YWZhLi4wNWUxOGU3NDI3NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtNjIwOSw2 ICs2MjA5LDI4IEBAIGVudW0gewogCQkJX0lEKGlkLCBfUFNfRUNDX1NUQVRfMUEsIF9QU19FQ0Nf U1RBVF8yQSksICAgXAogCQkJX0lEKGlkLCBfUFNfRUNDX1NUQVRfMUIsIF9QU19FQ0NfU1RBVF8y QikpCiAKKyNkZWZpbmUgUExBTkVfQVVYX0RJU1RfMV9BCQkweDcwMWMwCisjZGVmaW5lIFBMQU5F X0FVWF9ESVNUXzJfQQkJMHg3MDJjMAorI2RlZmluZSBQTEFORV9BVVhfRElTVF8xX0IJCTB4NzEx YzAKKyNkZWZpbmUgUExBTkVfQVVYX0RJU1RfMl9CCQkweDcxMmMwCisjZGVmaW5lIF9QTEFORV9B VVhfRElTVF8xKHBpcGUpIFwKKwkJCV9QSVBFKHBpcGUsIFBMQU5FX0FVWF9ESVNUXzFfQSwgUExB TkVfQVVYX0RJU1RfMV9CKQorI2RlZmluZSBfUExBTkVfQVVYX0RJU1RfMihwaXBlKSBcCisJCQlf UElQRShwaXBlLCBQTEFORV9BVVhfRElTVF8yX0EsIFBMQU5FX0FVWF9ESVNUXzJfQikKKyNkZWZp bmUgUExBTkVfQVVYX0RJU1QocGlwZSwgcGxhbmUpICAgICBcCisJX01NSU9fUExBTkUocGxhbmUs IF9QTEFORV9BVVhfRElTVF8xKHBpcGUpLCBfUExBTkVfQVVYX0RJU1RfMihwaXBlKSkKKworI2Rl ZmluZSBQTEFORV9BVVhfT0ZGU0VUXzFfQQkJMHg3MDFjNAorI2RlZmluZSBQTEFORV9BVVhfT0ZG U0VUXzJfQQkJMHg3MDJjNAorI2RlZmluZSBQTEFORV9BVVhfT0ZGU0VUXzFfQgkJMHg3MTFjNAor I2RlZmluZSBQTEFORV9BVVhfT0ZGU0VUXzJfQgkJMHg3MTJjNAorI2RlZmluZSBfUExBTkVfQVVY X09GRlNFVF8xKHBpcGUpICAgICAgIFwKKwkJX1BJUEUocGlwZSwgUExBTkVfQVVYX09GRlNFVF8x X0EsIFBMQU5FX0FVWF9PRkZTRVRfMV9CKQorI2RlZmluZSBfUExBTkVfQVVYX09GRlNFVF8yKHBp cGUpICAgICAgIFwKKwkJX1BJUEUocGlwZSwgUExBTkVfQVVYX09GRlNFVF8yX0EsIFBMQU5FX0FV WF9PRkZTRVRfMl9CKQorI2RlZmluZSBQTEFORV9BVVhfT0ZGU0VUKHBpcGUsIHBsYW5lKSAgIFwK KwlfTU1JT19QTEFORShwbGFuZSwgX1BMQU5FX0FVWF9PRkZTRVRfMShwaXBlKSwgX1BMQU5FX0FV WF9PRkZTRVRfMihwaXBlKSkKKwogLyogbGVnYWN5IHBhbGV0dGUgKi8KICNkZWZpbmUgX0xHQ19Q QUxFVFRFX0EgICAgICAgICAgIDB4NGEwMDAKICNkZWZpbmUgX0xHQ19QQUxFVFRFX0IgICAgICAg ICAgIDB4NGE4MDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAzOGRlOWRm MGVjNjAuLmI1NDczMzJlZWRhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpA QCAtMjA2NCwxMSArMjA2NCwxOSBAQCBpbnRlbF90aWxlX3dpZHRoX2J5dGVzKGNvbnN0IHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUpCiAJCQlyZXR1cm4gMTI4OwogCQllbHNl CiAJCQlyZXR1cm4gNTEyOworCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTOgorCQlp ZiAocGxhbmUgPT0gMSkKKwkJCXJldHVybiA2NDsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2Fz ZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRDoKIAkJaWYgKElTX0dFTjIoZGV2X3ByaXYpIHx8IEhB U18xMjhfQllURV9ZX1RJTElORyhkZXZfcHJpdikpCiAJCQlyZXR1cm4gMTI4OwogCQllbHNlCiAJ CQlyZXR1cm4gNTEyOworCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEX0NDUzoKKwkJaWYg KHBsYW5lID09IDEpCisJCQlyZXR1cm4gNjQ7CisJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2Ug STkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEOgogCQkvKgogCQkgKiBCc3BlYyBzZWVtcyB0byBzdWdn ZXN0IHRoYXQgdGhlIFlmIHRpbGUgd2lkdGggd291bGQKQEAgLTIxNTYsNyArMjE2NCw3IEBAIHN0 YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfc3VyZl9hbGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShmYi0+ZGV2KTsKIAogCS8qIEFVWF9ESVNUIG5lZWRzIG9ubHkgNEsgYWxpZ25tZW50ICov Ci0JaWYgKGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIgJiYgcGxhbmUgPT0g MSkKKwlpZiAocGxhbmUgPT0gMSkKIAkJcmV0dXJuIDQwOTY7CiAKIAlzd2l0Y2ggKGZiLT5tb2Rp ZmllcikgewpAQCAtMjE2Niw2ICsyMTc0LDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9z dXJmX2FsaWdubWVudChjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gOSkKIAkJCXJldHVybiAyNTYgKiAxMDI0OwogCQlyZXR1cm4g MDsKKwljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUzoKKwljYXNlIEk5MTVfRk9STUFU X01PRF9ZZl9USUxFRF9DQ1M6CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRDoKIAljYXNl IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRDoKIAkJcmV0dXJuIDEgKiAxMDI0ICogMTAyNDsKQEAg LTI0NzIsNiArMjQ4Miw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfZmJfbW9kaWZpZXJf dG9fdGlsaW5nKHVpbnQ2NF90IGZiX21vZGlmaWVyKQogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1hf VElMRUQ6CiAJCXJldHVybiBJOTE1X1RJTElOR19YOwogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lf VElMRUQ6CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1M6CiAJCXJldHVybiBJOTE1 X1RJTElOR19ZOwogCWRlZmF1bHQ6CiAJCXJldHVybiBJOTE1X1RJTElOR19OT05FOwpAQCAtMjUz Niw2ICsyNTQ3LDM1IEBAIGludGVsX2ZpbGxfZmJfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAKIAkJaW50ZWxfZmJfb2Zmc2V0X3RvX3h5KCZ4LCAmeSwgZmIsIGkpOwog CisJCWlmICgoZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8fAor CQkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTKSAmJiBp ID09IDEpIHsKKwkJCWludCBtYWluX3gsIG1haW5feTsKKwkJCWludCBjY3NfeCwgY2NzX3k7CisK KwkJCS8qCisJCQkgKiBFYWNoIGJ5dGUgb2YgQ0NTIGNvcnJlc3BvbmRzIHRvIGEgMTZ4OCBhcmVh IG9mIHRoZSBtYWluIHN1cmZhY2UsIGFuZAorCQkJICogZWFjaCBDQ1MgdGlsZSBpcyA2NHg2NCBi eXRlcy4KKwkJCSAqLworCQkJY2NzX3ggPSAoeCAqIDE2KSAlICg2NCAqIDE2KTsKKwkJCWNjc195 ID0gKHkgKiA4KSAlICg2NCAqIDgpOworCQkJbWFpbl94ID0gaW50ZWxfZmItPm5vcm1hbFswXS54 ICUgKDY0ICogMTYpOworCQkJbWFpbl95ID0gaW50ZWxfZmItPm5vcm1hbFswXS55ICUgKDY0ICog OCk7CisKKwkJCS8qCisJCQkgKiBDQ1MgZG9lc24ndCBoYXZlIGl0cyBvd24geC95IG9mZnNldCBy ZWdpc3Rlciwgc28gdGhlIGludHJhIENDUyB0aWxlCisJCQkgKiB4L3kgb2Zmc2V0cyBtdXN0IG1h dGNoIGJldHdlZW4gQ0NTIGFuZCB0aGUgbWFpbiBzdXJmYWNlLgorCQkJICovCisJCQlpZiAobWFp bl94ICE9IGNjc194IHx8IG1haW5feSAhPSBjY3NfeSkgeworCQkJCURSTV9ERUJVR19LTVMoIkJh ZCBDQ1MgeC95IChtYWluICVkLCVkIGNjcyAlZCwlZCkgZnVsbCAobWFpbiAlZCwlZCBjY3MgJWQs JWQpXG4iLAorCQkJCQkgICAgICBtYWluX3gsIG1haW5feSwKKwkJCQkJICAgICAgY2NzX3gsIGNj c195LAorCQkJCQkgICAgICBpbnRlbF9mYi0+bm9ybWFsWzBdLngsCisJCQkJCSAgICAgIGludGVs X2ZiLT5ub3JtYWxbMF0ueSwKKwkJCQkJICAgICAgeCwgeSk7CisJCQkJcmV0dXJuIC1FSU5WQUw7 CisJCQl9CisJCX0KKwogCQkvKgogCQkgKiBUaGUgZmVuY2UgKGlmIHVzZWQpIGlzIGFsaWduZWQg dG8gdGhlIHN0YXJ0IG9mIHRoZSBvYmplY3QKIAkJICogc28gaGF2aW5nIHRoZSBmcmFtZWJ1ZmZl ciB3cmFwIGFyb3VuZCBhY3Jvc3MgdGhlIGVkZ2Ugb2YgdGhlCkBAIC0yODczLDYgKzI5MTMsOSBA QCBzdGF0aWMgaW50IHNrbF9tYXhfcGxhbmVfd2lkdGgoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIsIGludCBwbGFuZSwKIAkJCWJyZWFrOwogCQl9CiAJCWJyZWFrOworCWNhc2UgSTkx NV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTOgorCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVE X0NDUzoKKwkJLyogRklYTUUgQVVYIHBsYW5lPyAqLwogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lf VElMRUQ6CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6CiAJCXN3aXRjaCAoY3BwKSB7 CkBAIC0yODk1LDYgKzI5MzgsNDIgQEAgc3RhdGljIGludCBza2xfbWF4X3BsYW5lX3dpZHRoKGNv bnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUsCiAJcmV0dXJuIDIwNDg7 CiB9CiAKK3N0YXRpYyBib29sIHNrbF9jaGVja19tYWluX2Njc19jb29yZGluYXRlcyhzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLAorCQkJCQkgICBpbnQgbWFpbl94LCBpbnQg bWFpbl95LCB1MzIgbWFpbl9vZmZzZXQpCit7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwlpbnQgYXV4X3ggPSBwbGFuZV9zdGF0ZS0+ YXV4Lng7CisJaW50IGF1eF95ID0gcGxhbmVfc3RhdGUtPmF1eC55OworCXUzMiBhdXhfb2Zmc2V0 ID0gcGxhbmVfc3RhdGUtPmF1eC5vZmZzZXQ7CisJdTMyIGFsaWdubWVudCA9IGludGVsX3N1cmZf YWxpZ25tZW50KGZiLCAxKTsKKworCXdoaWxlIChhdXhfb2Zmc2V0ID49IG1haW5fb2Zmc2V0ICYm IGF1eF95IDw9IG1haW5feSkgeworCQlpbnQgeCwgeTsKKworCQlpZiAoYXV4X3ggPT0gbWFpbl94 ICYmIGF1eF95ID09IG1haW5feSkKKwkJCWJyZWFrOworCisJCWlmIChhdXhfb2Zmc2V0ID09IDAp CisJCQlicmVhazsKKworCQl4ID0gYXV4X3ggLyAxNjsKKwkJeSA9IGF1eF95IC8gODsKKwkJYXV4 X29mZnNldCA9IGludGVsX2FkanVzdF90aWxlX29mZnNldCgmeCwgJnksIHBsYW5lX3N0YXRlLCAx LAorCQkJCQkJICAgICAgYXV4X29mZnNldCwgYXV4X29mZnNldCAtIGFsaWdubWVudCk7CisJCWF1 eF94ID0geCAqIDE2ICsgYXV4X3ggJSAxNjsKKwkJYXV4X3kgPSB5ICogOCArIGF1eF95ICUgODsK Kwl9CisKKwlpZiAoYXV4X3ggIT0gbWFpbl94IHx8IGF1eF95ICE9IG1haW5feSkKKwkJcmV0dXJu IGZhbHNlOworCisJcGxhbmVfc3RhdGUtPmF1eC5vZmZzZXQgPSBhdXhfb2Zmc2V0OworCXBsYW5l X3N0YXRlLT5hdXgueCA9IGF1eF94OworCXBsYW5lX3N0YXRlLT5hdXgueSA9IGF1eF95OworCisJ cmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBpbnQgc2tsX2NoZWNrX21haW5fc3VyZmFjZShzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCWNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CkBAIC0yOTM3LDcgKzMwMTYs NyBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19tYWluX3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5l X3N0YXRlICpwbGFuZV9zdGF0ZSkKIAogCQl3aGlsZSAoKHggKyB3KSAqIGNwcCA+IGZiLT5waXRj aGVzWzBdKSB7CiAJCQlpZiAob2Zmc2V0ID09IDApIHsKLQkJCQlEUk1fREVCVUdfS01TKCJVbmFi bGUgdG8gZmluZCBzdWl0YWJsZSBkaXNwbGF5IHN1cmZhY2Ugb2Zmc2V0XG4iKTsKKwkJCQlEUk1f REVCVUdfS01TKCJVbmFibGUgdG8gZmluZCBzdWl0YWJsZSBkaXNwbGF5IHN1cmZhY2Ugb2Zmc2V0 IGR1ZSB0byBYLXRpbGluZ1xuIik7CiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQl9CiAKQEAgLTI5 NDYsNiArMzAyNSwyNiBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19tYWluX3N1cmZhY2Uoc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIAkJfQogCX0KIAorCS8qCisJICogQ0NT IEFVWCBzdXJmYWNlIGRvZXNuJ3QgaGF2ZSBpdHMgb3duIHgveSBvZmZzZXRzLCB3ZSBtdXN0IG1h a2Ugc3VyZQorCSAqIHRoZXkgbWF0Y2ggd2l0aCB0aGUgbWFpbiBzdXJmYWNlIHgveSBvZmZzZXRz LgorCSAqLworCWlmIChmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NT IHx8CisJICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTKSB7 CisJCXdoaWxlICghc2tsX2NoZWNrX21haW5fY2NzX2Nvb3JkaW5hdGVzKHBsYW5lX3N0YXRlLCB4 LCB5LCBvZmZzZXQpKSB7CisJCQlpZiAob2Zmc2V0ID09IDApCisJCQkJYnJlYWs7CisKKwkJCW9m ZnNldCA9IGludGVsX2FkanVzdF90aWxlX29mZnNldCgmeCwgJnksIHBsYW5lX3N0YXRlLCAwLAor CQkJCQkJCSAgb2Zmc2V0LCBvZmZzZXQgLSBhbGlnbm1lbnQpOworCQl9CisKKwkJaWYgKHggIT0g cGxhbmVfc3RhdGUtPmF1eC54IHx8IHkgIT0gcGxhbmVfc3RhdGUtPmF1eC55KSB7CisJCQlEUk1f REVCVUdfS01TKCJVbmFibGUgdG8gZmluZCBzdWl0YWJsZSBkaXNwbGF5IHN1cmZhY2Ugb2Zmc2V0 IGR1ZSB0byBDQ1NcbiIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisKIAlwbGFuZV9z dGF0ZS0+bWFpbi5vZmZzZXQgPSBvZmZzZXQ7CiAJcGxhbmVfc3RhdGUtPm1haW4ueCA9IHg7CiAJ cGxhbmVfc3RhdGUtPm1haW4ueSA9IHk7CkBAIC0yOTgyLDYgKzMwODEsNTMgQEAgc3RhdGljIGlu dCBza2xfY2hlY2tfbnYxMl9hdXhfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHNrbF9jaGVja19jY3NfYXV4 X3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2Uu cGxhbmUpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwbGFuZV9z dGF0ZS0+YmFzZS5jcnRjKTsKKwlpbnQgc3JjX3ggPSBwbGFuZV9zdGF0ZS0+YmFzZS5zcmMueDEg Pj4gMTY7CisJaW50IHNyY195ID0gcGxhbmVfc3RhdGUtPmJhc2Uuc3JjLnkxID4+IDE2OworCWlu dCB4ID0gc3JjX3ggLyAxNjsKKwlpbnQgeSA9IHNyY195IC8gODsKKwl1MzIgb2Zmc2V0OworCisJ c3dpdGNoIChwbGFuZS0+aWQpIHsKKwljYXNlIFBMQU5FX1BSSU1BUlk6CisJY2FzZSBQTEFORV9T UFJJVEUwOgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlEUk1fREVCVUdfS01TKCJSQyBzdXBwb3J0 IG9ubHkgb24gcGxhbmUgMSBhbmQgMlxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlm IChjcnRjLT5waXBlID09IFBJUEVfQykgeworCQlEUk1fREVCVUdfS01TKCJObyBSQyBzdXBwb3J0 IG9uIHBpcGUgQ1xuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwkvKgorCSAqIFRPRE86CisJ ICogMS4gRGlzYWJsZSBzdGVyZW8gM0Qgd2hlbiByZW5kZXIgZGVjb21wIGlzIGVuYWJsZWQgKGJp dCA3OjYpCisJICogMi4gUmVuZGVyIGRlY29tcHJlc3Npb24gbXVzdCBub3QgYmUgdXNlZCBpbiBW VGQgcGFzcy10aHJvdWdoIG1vZGUKKwkgKiAzLiBQcm9ncmFtIGhhc2hpbmcgc2VsZWN0IENISUNL RU5fTUlTQzEgYml0IDE1CisJICovCisKKwlpZiAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24g JiYKKwkgICAgcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24gJiB+KERSTV9ST1RBVEVfMCB8IERS TV9ST1RBVEVfMTgwKSkgeworCQlEUk1fREVCVUdfS01TKCJSQyBzdXBwb3J0IG9ubHkgd2l0aCAw LzE4MCBkZWdyZWUgcm90YXRpb24gJXhcbiIsCisJCQkgICAgICBwbGFuZV9zdGF0ZS0+YmFzZS5y b3RhdGlvbik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWludGVsX2FkZF9mYl9vZmZzZXRz KCZ4LCAmeSwgcGxhbmVfc3RhdGUsIDEpOworCW9mZnNldCA9IGludGVsX2NvbXB1dGVfdGlsZV9v ZmZzZXQoJngsICZ5LCBwbGFuZV9zdGF0ZSwgMSk7CisKKwlwbGFuZV9zdGF0ZS0+YXV4Lm9mZnNl dCA9IG9mZnNldDsKKwlwbGFuZV9zdGF0ZS0+YXV4LnggPSB4ICogMTYgKyBzcmNfeCAlIDE2Owor CXBsYW5lX3N0YXRlLT5hdXgueSA9IHkgKiA4ICsgc3JjX3kgJSA4OworCisJcmV0dXJuIDA7Cit9 CisKIGludCBza2xfY2hlY2tfcGxhbmVfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQogewogCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmJhc2UuZmI7CkBAIC0zMDAyLDYgKzMxNDgsMTEgQEAgaW50IHNrbF9jaGVja19w bGFuZV9zdXJmYWNlKHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAJCXJl dCA9IHNrbF9jaGVja19udjEyX2F1eF9zdXJmYWNlKHBsYW5lX3N0YXRlKTsKIAkJaWYgKHJldCkK IAkJCXJldHVybiByZXQ7CisJfSBlbHNlIGlmIChmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRf TU9EX1lfVElMRURfQ0NTIHx8CisJCSAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0Rf WWZfVElMRURfQ0NTKSB7CisJCXJldCA9IHNrbF9jaGVja19jY3NfYXV4X3N1cmZhY2UocGxhbmVf c3RhdGUpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKIAl9IGVsc2UgewogCQlwbGFuZV9z dGF0ZS0+YXV4Lm9mZnNldCA9IH4weGZmZjsKIAkJcGxhbmVfc3RhdGUtPmF1eC54ID0gMDsKQEAg LTMzNTcsOCArMzUwOCwxMiBAQCB1MzIgc2tsX3BsYW5lX2N0bF90aWxpbmcodWludDY0X3QgZmJf bW9kaWZpZXIpCiAJCXJldHVybiBQTEFORV9DVExfVElMRURfWDsKIAljYXNlIEk5MTVfRk9STUFU X01PRF9ZX1RJTEVEOgogCQlyZXR1cm4gUExBTkVfQ1RMX1RJTEVEX1k7CisJY2FzZSBJOTE1X0ZP Uk1BVF9NT0RfWV9USUxFRF9DQ1M6CisJCXJldHVybiBQTEFORV9DVExfVElMRURfWSB8IFBMQU5F X0NUTF9ERUNPTVBSRVNTSU9OX0VOQUJMRTsKIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZZl9USUxF RDoKIAkJcmV0dXJuIFBMQU5FX0NUTF9USUxFRF9ZRjsKKwljYXNlIEk5MTVfRk9STUFUX01PRF9Z Zl9USUxFRF9DQ1M6CisJCXJldHVybiBQTEFORV9DVExfVElMRURfWUYgfCBQTEFORV9DVExfREVD T01QUkVTU0lPTl9FTkFCTEU7CiAJZGVmYXVsdDoKIAkJTUlTU0lOR19DQVNFKGZiX21vZGlmaWVy KTsKIAl9CkBAIC0zNDAxLDYgKzM1NTYsNyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9w cmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXUzMiBwbGFuZV9jdGw7CiAJ dW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CiAJdTMy IHN0cmlkZSA9IHNrbF9wbGFuZV9zdHJpZGUoZmIsIDAsIHJvdGF0aW9uKTsKKwl1MzIgYXV4X3N0 cmlkZSA9IHNrbF9wbGFuZV9zdHJpZGUoZmIsIDEsIHJvdGF0aW9uKTsKIAl1MzIgc3VyZl9hZGRy ID0gcGxhbmVfc3RhdGUtPm1haW4ub2Zmc2V0OwogCWludCBzY2FsZXJfaWQgPSBwbGFuZV9zdGF0 ZS0+c2NhbGVyX2lkOwogCWludCBzcmNfeCA9IHBsYW5lX3N0YXRlLT5tYWluLng7CkBAIC0zNDM2 LDYgKzM1OTIsMTAgQEAgc3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlJOTE1X1dSSVRFKFBMQU5FX09GRlNFVChwaXBlLCBw bGFuZV9pZCksIChzcmNfeSA8PCAxNikgfCBzcmNfeCk7CiAJSTkxNV9XUklURShQTEFORV9TVFJJ REUocGlwZSwgcGxhbmVfaWQpLCBzdHJpZGUpOwogCUk5MTVfV1JJVEUoUExBTkVfU0laRShwaXBl LCBwbGFuZV9pZCksIChzcmNfaCA8PCAxNikgfCBzcmNfdyk7CisJSTkxNV9XUklURShQTEFORV9B VVhfRElTVChwaXBlLCBwbGFuZV9pZCksCisJCSAgIChwbGFuZV9zdGF0ZS0+YXV4Lm9mZnNldCAt IHN1cmZfYWRkcikgfCBhdXhfc3RyaWRlKTsKKwlJOTE1X1dSSVRFKFBMQU5FX0FVWF9PRkZTRVQo cGlwZSwgcGxhbmVfaWQpLAorCQkgICAocGxhbmVfc3RhdGUtPmF1eC55IDw8IDE2KSB8IHBsYW5l X3N0YXRlLT5hdXgueCk7CiAKIAlpZiAoc2NhbGVyX2lkID49IDApIHsKIAkJdWludDMyX3QgcHNf Y3RybCA9IDA7CkBAIC05ODA3LDEwICs5OTY3LDE2IEBAIHNreWxha2VfZ2V0X2luaXRpYWxfcGxh bmVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQlmYi0+bW9kaWZpZXIgPSBJOTE1 X0ZPUk1BVF9NT0RfWF9USUxFRDsKIAkJYnJlYWs7CiAJY2FzZSBQTEFORV9DVExfVElMRURfWToK LQkJZmItPm1vZGlmaWVyID0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ7CisJCWlmICh2YWwgJiBQ TEFORV9DVExfREVDT01QUkVTU0lPTl9FTkFCTEUpCisJCQlmYi0+bW9kaWZpZXIgPSBJOTE1X0ZP Uk1BVF9NT0RfWV9USUxFRF9DQ1M7CisJCWVsc2UKKwkJCWZiLT5tb2RpZmllciA9IEk5MTVfRk9S TUFUX01PRF9ZX1RJTEVEOwogCQlicmVhazsKIAljYXNlIFBMQU5FX0NUTF9USUxFRF9ZRjoKLQkJ ZmItPm1vZGlmaWVyID0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEOworCQlpZiAodmFsICYgUExB TkVfQ1RMX0RFQ09NUFJFU1NJT05fRU5BQkxFKQorCQkJZmItPm1vZGlmaWVyID0gSTkxNV9GT1JN QVRfTU9EX1lmX1RJTEVEX0NDUzsKKwkJZWxzZQorCQkJZmItPm1vZGlmaWVyID0gSTkxNV9GT1JN QVRfTU9EX1lmX1RJTEVEOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlNSVNTSU5HX0NBU0UodGls aW5nKTsKQEAgLTEyMDE0LDcgKzEyMTgwLDcgQEAgc3RhdGljIHZvaWQgc2tsX2RvX21taW9fZmxp cChzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAl1MzIgY3RsLCBzdHJpZGUgPSBza2xf cGxhbmVfc3RyaWRlKGZiLCAwLCByb3RhdGlvbik7CiAKIAljdGwgPSBJOTE1X1JFQUQoUExBTkVf Q1RMKHBpcGUsIDApKTsKLQljdGwgJj0gflBMQU5FX0NUTF9USUxFRF9NQVNLOworCWN0bCAmPSB+ KFBMQU5FX0NUTF9USUxFRF9NQVNLIHwgUExBTkVfQ1RMX0RFQ09NUFJFU1NJT05fRU5BQkxFKTsK IAlzd2l0Y2ggKGZiLT5tb2RpZmllcikgewogCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTk9ORToKIAkJ YnJlYWs7CkBAIC0xMjAyNCw5ICsxMjE5MCwxNSBAQCBzdGF0aWMgdm9pZCBza2xfZG9fbW1pb19m bGlwKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCWNhc2UgSTkxNV9GT1JNQVRfTU9E X1lfVElMRUQ6CiAJCWN0bCB8PSBQTEFORV9DVExfVElMRURfWTsKIAkJYnJlYWs7CisJY2FzZSBJ OTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1M6CisJCWN0bCB8PSBQTEFORV9DVExfVElMRURfWSB8 IFBMQU5FX0NUTF9ERUNPTVBSRVNTSU9OX0VOQUJMRTsKKwkJYnJlYWs7CiAJY2FzZSBJOTE1X0ZP Uk1BVF9NT0RfWWZfVElMRUQ6CiAJCWN0bCB8PSBQTEFORV9DVExfVElMRURfWUY7CiAJCWJyZWFr OworCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEX0NDUzoKKwkJY3RsIHw9IFBMQU5FX0NU TF9USUxFRF9ZRiB8IFBMQU5FX0NUTF9ERUNPTVBSRVNTSU9OX0VOQUJMRTsKKwkJYnJlYWs7CiAJ ZGVmYXVsdDoKIAkJTUlTU0lOR19DQVNFKGZiLT5tb2RpZmllcik7CiAJfQpAQCAtMTU5MjYsOCAr MTYwOTgsOCBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CiAJdW5zaWduZWQgaW50IHRpbGluZyA9IGk5MTVfZ2VtX29iamVjdF9nZXRfdGls aW5nKG9iaik7Ci0JaW50IHJldDsKLQl1MzIgcGl0Y2hfbGltaXQsIHN0cmlkZV9hbGlnbm1lbnQ7 CisJaW50IHJldCwgaTsKKwl1MzIgcGl0Y2hfbGltaXQ7CiAJc3RydWN0IGRybV9mb3JtYXRfbmFt ZV9idWYgZm9ybWF0X25hbWU7CiAKIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldi0+c3Ry dWN0X211dGV4KSk7CkBAIC0xNTk1Myw2ICsxNjEyNSwxOSBAQCBzdGF0aWMgaW50IGludGVsX2Zy YW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCS8qIFBhc3NlZCBpbiBt b2RpZmllciBzYW5pdHkgY2hlY2tpbmcuICovCiAJc3dpdGNoIChtb2RlX2NtZC0+bW9kaWZpZXJb MF0pIHsKKwljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUzoKKwljYXNlIEk5MTVfRk9S TUFUX01PRF9ZZl9USUxFRF9DQ1M6CisJCXN3aXRjaCAobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCkg eworCQljYXNlIERSTV9GT1JNQVRfWEJHUjg4ODg6CisJCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4 ODoKKwkJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4OgorCQljYXNlIERSTV9GT1JNQVRfQVJHQjg4 ODg6CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCURSTV9ERUJVR19LTVMoIlJDIHN1cHBvcnRl ZCBvbmx5IHdpdGggUkdCODg4OCBmb3JtYXRzXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9 CisJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6CiAJ Y2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6CiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgOSkgewpAQCAtMTYwNjEsMTEgKzE2MjQ2LDIxIEBAIHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVi dWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJZHJtX2hlbHBlcl9tb2RlX2Zp bGxfZmJfc3RydWN0KGRldiwgJmludGVsX2ZiLT5iYXNlLCBtb2RlX2NtZCk7CiAKLQlzdHJpZGVf YWxpZ25tZW50ID0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudCgmaW50ZWxfZmItPmJhc2UsIDAp OwotCWlmIChtb2RlX2NtZC0+cGl0Y2hlc1swXSAmIChzdHJpZGVfYWxpZ25tZW50IC0gMSkpIHsK LQkJRFJNX0RFQlVHX0tNUygicGl0Y2ggKCVkKSBtdXN0IGJlIGF0IGxlYXN0ICV1IGJ5dGUgYWxp Z25lZFxuIiwKLQkJCSAgICAgIG1vZGVfY21kLT5waXRjaGVzWzBdLCBzdHJpZGVfYWxpZ25tZW50 KTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJZm9yIChpID0gMDsgaSA8IGludGVsX2ZiLT5iYXNlLmZv cm1hdC0+bnVtX3BsYW5lczsgaSsrKSB7CisJCXUzMiBzdHJpZGVfYWxpZ25tZW50OworCisJCWlm IChtb2RlX2NtZC0+aGFuZGxlc1tpXSAhPSBtb2RlX2NtZC0+aGFuZGxlc1swXSkgeworCQkJRFJN X0RFQlVHX0tNUygiYmFkIHBsYW5lICVkIGhhbmRsZVxuIiwgaSk7CisJCQlyZXR1cm4gLUVJTlZB TDsKKwkJfQorCisJCXN0cmlkZV9hbGlnbm1lbnQgPSBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50 KCZpbnRlbF9mYi0+YmFzZSwgaSk7CisKKwkJaWYgKG1vZGVfY21kLT5waXRjaGVzW2ldICYgKHN0 cmlkZV9hbGlnbm1lbnQgLSAxKSkgeworCQkJRFJNX0RFQlVHX0tNUygicGxhbmUgJWQgcGl0Y2gg KCVkKSBtdXN0IGJlIGF0IGxlYXN0ICV1IGJ5dGUgYWxpZ25lZFxuIiwKKwkJCQkgICAgICBpLCBt b2RlX2NtZC0+cGl0Y2hlc1tpXSwgc3RyaWRlX2FsaWdubWVudCk7CisJCQlyZXR1cm4gLUVJTlZB TDsKKwkJfQogCX0KIAogCWludGVsX2ZiLT5vYmogPSBvYmo7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YwppbmRleCAyNDk2MjNkNDViZTAuLmFkZDM1OTAyMmM5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCkBAIC0zMzE0LDcgKzMzMTQsOSBAQCBza2xfZGRiX21pbl9hbGxvYyhjb25zdCBzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpwc3RhdGUsCiAKIAkvKiBGb3IgTm9uIFktdGlsZSByZXR1cm4gOC1i bG9ja3MgKi8KIAlpZiAoZmItPm1vZGlmaWVyICE9IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEICYm Ci0JICAgIGZiLT5tb2RpZmllciAhPSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQpCisJICAgIGZi LT5tb2RpZmllciAhPSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQgJiYKKwkgICAgZmItPm1vZGlm aWVyICE9IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyAmJgorCSAgICBmYi0+bW9kaWZpZXIg IT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEX0NDUykKIAkJcmV0dXJuIDg7CiAKIAlzcmNfdyA9 IGRybV9yZWN0X3dpZHRoKCZpbnRlbF9wc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKQEAgLTM1OTAs NyArMzU5Miw5IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCX0KIAogCXlfdGlsZWQgPSBmYi0+bW9kaWZp ZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKLQkJICBmYi0+bW9kaWZpZXIgPT0gSTkx NV9GT1JNQVRfTU9EX1lmX1RJTEVEOworCQkgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9N T0RfWWZfVElMRUQgfHwKKwkJICBmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElM RURfQ0NTIHx8CisJCSAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRF9D Q1M7CiAJeF90aWxlZCA9IGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsK IAogCS8qIERpc3BsYXkgV0EgIzExNDE6IGtibC4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKaW5kZXggNzAzMWJjNzMzZDk3Li4wNjNhOTk0ODE1ZDAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jCkBAIC0yMTAsNiArMjEwLDcgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCiAJdTMyIHN1cmZfYWRkciA9IHBsYW5lX3N0YXRlLT5t YWluLm9mZnNldDsKIAl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5y b3RhdGlvbjsKIAl1MzIgc3RyaWRlID0gc2tsX3BsYW5lX3N0cmlkZShmYiwgMCwgcm90YXRpb24p OworCXUzMiBhdXhfc3RyaWRlID0gc2tsX3BsYW5lX3N0cmlkZShmYiwgMSwgcm90YXRpb24pOwog CWludCBjcnRjX3ggPSBwbGFuZV9zdGF0ZS0+YmFzZS5kc3QueDE7CiAJaW50IGNydGNfeSA9IHBs YW5lX3N0YXRlLT5iYXNlLmRzdC55MTsKIAl1aW50MzJfdCBjcnRjX3cgPSBkcm1fcmVjdF93aWR0 aCgmcGxhbmVfc3RhdGUtPmJhc2UuZHN0KTsKQEAgLTI0OCw2ICsyNDksMTAgQEAgc2tsX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCiAJSTkxNV9XUklURShQTEFORV9P RkZTRVQocGlwZSwgcGxhbmVfaWQpLCAoeSA8PCAxNikgfCB4KTsKIAlJOTE1X1dSSVRFKFBMQU5F X1NUUklERShwaXBlLCBwbGFuZV9pZCksIHN0cmlkZSk7CiAJSTkxNV9XUklURShQTEFORV9TSVpF KHBpcGUsIHBsYW5lX2lkKSwgKHNyY19oIDw8IDE2KSB8IHNyY193KTsKKwlJOTE1X1dSSVRFKFBM QU5FX0FVWF9ESVNUKHBpcGUsIHBsYW5lX2lkKSwKKwkJICAgKHBsYW5lX3N0YXRlLT5hdXgub2Zm c2V0IC0gc3VyZl9hZGRyKSB8IGF1eF9zdHJpZGUpOworCUk5MTVfV1JJVEUoUExBTkVfQVVYX09G RlNFVChwaXBlLCBwbGFuZV9pZCksCisJCSAgIChwbGFuZV9zdGF0ZS0+YXV4LnkgPDwgMTYpIHwg cGxhbmVfc3RhdGUtPmF1eC54KTsKIAogCS8qIHByb2dyYW0gcGxhbmUgc2NhbGVyICovCiAJaWYg KHBsYW5lX3N0YXRlLT5zY2FsZXJfaWQgPj0gMCkgewotLSAKMi4xMC4yCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK