From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH v2] drm/i915: Pass down rc in intel_encoder->compute_config() Date: Tue, 15 Jan 2019 15:08:00 -0500 Message-ID: <20190115200800.3121-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: David Airlie , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: dri-devel@lists.freedesktop.org U29tZXRoaW5nIHRoYXQgSSBjb21wbGV0ZWx5IG1pc3NlZCB3aGVuIGltcGxlbWVudGluZyB0aGUg bmV3IE1TVCBWQ1BJCmF0b21pYyBoZWxwZXJzIGlzIHRoYXQgd2l0aCB0aG9zZSBoZWxwZXJzLCB0 aGVyZSdzIHRlY2huaWNhbGx5IGEgY2hhbmNlCm9mIHVzIGhhdmluZyB0byBncmFiIGFkZGl0aW9u YWwgbW9kZXNldCBsb2NrcyBpbiAtPmNvbXB1dGVfY29uZmlnKCkgYW5kCmZ1cnRoZXJtb3JlLCB0 aGF0IG1lYW5zIHdlIGhhdmUgdGhlIHBvdGVudGlhbCB0byBoaXQgYSBub3JtYWwgbW9kZXNldApk ZWFkbG9jay4gSG93ZXZlciwgYmVjYXVzZSAtPmNvbXB1dGVfY29uZmlnKCkgb25seSByZXR1cm5z IGEgYm9vbCB0aGlzCm1lYW5zIHdlIGNhbid0IHJldHVybiAtRURFQURMSyB3aGVuIHdlIG5lZWQg dG8gZHJvcCBsb2NrcyBhbmQgdHJ5IGFnYWluCndoaWNoIG1lYW5zIHdlIGVuZCB1cCBqdXN0IGZh aWxpbmcgdGhlIGF0b21pYyBjaGVjayBwZXJtYW5lbnRseS4gV2hvb3BzLgoKU28sIGZpeCB0aGlz IGJ5IG1vZGlmeWluZyAtPmNvbXB1dGVfY29uZmlnKCkgdG8gcGFzcyBkb3duIGFuIGFjdHVhbApl cnJvciBjb2RlIGluc3RlYWQgb2YgYSBib29sIHNvIHRoYXQgdGhlIGF0b21pYyBjaGVjayBjYW4g YmUgcmVzdGFydGVkCm9uIG1vZGVzZXQgZGVhZGxvY2tzLgoKVGhhbmtzIHRvIFZpbGxlIFN5cmrD pGzDpCBmb3IgcG9pbnRpbmcgdGhpcyBvdXQhCgpDaGFuZ2VzIHNpbmNlIHYxOgoqIEFkZCBzb21l IG5ld2xpbmVzCiogUmV0dXJuIG9ubHkgLUVJTlZBTCBmcm9tIGhzd19jcnRfY29tcHV0ZV9jb25m aWcoKQoqIFByb3BvZ2F0ZSByZXR1cm4gY29kZSBmcm9tIGludGVsX2RwX2NvbXB1dGVfZHNjX3Bh cmFtcygpCiogQ2hhbmdlIGFsbCBvZiB0aGUgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyoo KSB2YXJpYW50cwoqIERvbid0IG1pc3MgaWYgKGhkbWlfcG9ydF9jbG9ja192YWxpZCgpKSBicmFu Y2ggaW4KICBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKCkKClNpZ25lZC1vZmYtYnk6IEx5dWRl IFBhdWwgPGx5dWRlQHJlZGhhdC5jb20+CkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgpGaXhlczogZWNlYWUxNDcyNDY3ICgiZHJtL2RwX21zdDogU3Rh cnQgdHJhY2tpbmcgcGVyLXBvcnQgVkNQSSBhbGxvY2F0aW9ucyIpCkJ1Z3ppbGxhOiBodHRwczov L2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzMjAKLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pY2xfZHNpLmMgICAgICAgfCAgOCArKy0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jcnQuYyAgICAgfCAzNSArKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMgICAgIHwgIDYgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgfCAxMSArKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAg ICAgIHwgNzEgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBfbXN0LmMgIHwgMTIgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oICAgICB8IDE4ICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5j ICAgICB8IDExICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgfCAx NCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYyAgICB8IDEyICsrLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMgICAgfCAxNCArKystLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMgICAgICB8ICA4ICsrLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L3Zsdl9kc2kuYyAgICAgICB8IDE0ICsrKy0tLQogMTMgZmlsZXMgY2hhbmdlZCwgMTIy IGluc2VydGlvbnMoKyksIDExMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pY2xfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pY2xfZHNpLmMKaW5k ZXggZjNhNWYwMzY0NmNlLi4zNTViNDhkMWM5MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ljbF9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pY2xfZHNpLmMKQEAg LTExODgsOSArMTE4OCw5IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9nZXRfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0g QklUKElOVEVMX09VVFBVVF9EU0kpOwogfQogCi1zdGF0aWMgYm9vbCBnZW4xMV9kc2lfY29tcHV0 ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkJICAgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKK3N0YXRpYyBpbnQgZ2VuMTFfZHNpX2NvbXB1dGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSAgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCisJCQkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGNvbnRh aW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3QgaW50ZWxfZHNpLAogCQkJCQkJICAgYmFzZSk7CkBAIC0x MjE1LDcgKzEyMTUsNyBAQCBzdGF0aWMgYm9vbCBnZW4xMV9kc2lfY29tcHV0ZV9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJcGlwZV9jb25maWctPmNsb2NrX3NldCA9IHRy dWU7CiAJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBpbnRlbF9kc2lfYml0cmF0ZShpbnRlbF9k c2kpIC8gNTsKIAotCXJldHVybiB0cnVlOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdTY0IGdl bjExX2RzaV9nZXRfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKaW5kZXggMzNiZDJhZGRjYmRkLi4wODFjMzMzZjMwZDIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCkBAIC0zNDUsNTEgKzM0NSw1MiBAQCBpbnRlbF9j cnRfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCXJldHVybiBN T0RFX09LOwogfQogCi1zdGF0aWMgYm9vbCBpbnRlbF9jcnRfY29tcHV0ZV9jb25maWcoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29u bl9zdGF0ZSkKK3N0YXRpYyBpbnQgaW50ZWxfY3J0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCisJCQkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KIAkJJnBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CiAKIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3Mg JiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCi0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIC1FSU5W QUw7CiAKIAlwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9IElOVEVMX09VVFBVVF9GT1JNQVRf UkdCOwotCXJldHVybiB0cnVlOworCisJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBib29sIHBjaF9j cnRfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkJICAg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAotCQkJCSAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQorc3RhdGljIGludCBwY2hfY3J0X2NvbXB1dGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAorCQkJCSAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPQogCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAogCWlmIChhZGp1c3Rl ZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKLQkJcmV0dXJuIGZhbHNlOwor CQlyZXR1cm4gLUVJTlZBTDsKIAogCXBpcGVfY29uZmlnLT5oYXNfcGNoX2VuY29kZXIgPSB0cnVl OwogCXBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0ID0gSU5URUxfT1VUUFVUX0ZPUk1BVF9SR0I7 CiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGJvb2wgaHN3X2NydF9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJCQkgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCi0JCQkJICAgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCitzdGF0aWMgaW50IGhzd19jcnRfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcsCisJCQkJICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9CiAJCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwogCiAJaWYgKGFk anVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FOKQotCQlyZXR1cm4gZmFs c2U7CisJCXJldHVybiAtRUlOVkFMOwogCiAJLyogSFNXL0JEVyBGREkgbGltaXRlZCB0byA0ayAq LwogCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ID4gNDA5NiB8fAogCSAgICBhZGp1 c3RlZF9tb2RlLT5jcnRjX2hibGFua19zdGFydCA+IDQwOTYpCi0JCXJldHVybiBmYWxzZTsKKwkJ cmV0dXJuIC1FSU5WQUw7CiAKIAlwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyID0gdHJ1ZTsK IAlwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9IElOVEVMX09VVFBVVF9GT1JNQVRfUkdCOwpA QCAtMzk4LDcgKzM5OSw3IEBAIHN0YXRpYyBib29sIGhzd19jcnRfY29tcHV0ZV9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKEhBU19QQ0hfTFBUKGRldl9wcml2KSkg ewogCQlpZiAocGlwZV9jb25maWctPmJ3X2NvbnN0cmFpbmVkICYmIHBpcGVfY29uZmlnLT5waXBl X2JwcCA8IDI0KSB7CiAJCQlEUk1fREVCVUdfS01TKCJMUFQgb25seSBzdXBwb3J0cyAyNGJwcFxu Iik7Ci0JCQlyZXR1cm4gZmFsc2U7CisJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCiAJCXBpcGVf Y29uZmlnLT5waXBlX2JwcCA9IDI0OwpAQCAtNDA3LDcgKzQwOCw3IEBAIHN0YXRpYyBib29sIGhz d19jcnRfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJLyog RkRJIG11c3QgYWx3YXlzIGJlIDIuNyBHSHogKi8KIAlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9 IDEzNTAwMCAqIDI7CiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGJv b2wgaW50ZWxfaXJvbmxha2VfY3J0X2RldGVjdF9ob3RwbHVnKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCmluZGV4IDdmM2NkMDU1ZGU1MC4u Y2U0NDc0NGE1ZjlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwpAQCAtMzgzNyw5ICszODM3 LDkgQEAgaW50ZWxfZGRpX2NvbXB1dGVfb3V0cHV0X3R5cGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJfQogfQogCi1zdGF0aWMgYm9vbCBpbnRlbF9kZGlfY29tcHV0ZV9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSkKK3N0YXRpYyBpbnQgaW50ZWxfZGRpX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcsCisJCQkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25u X3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAwYTViYTQ1ZjVlYjAuLmFmMTY0ZDcx MmU5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTE1NTMsMTAgKzEx NTUzLDEzIEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0IGRybV9jcnRjICpjcnRj LAogCQkJY29udGludWU7CiAKIAkJZW5jb2RlciA9IHRvX2ludGVsX2VuY29kZXIoY29ubmVjdG9y X3N0YXRlLT5iZXN0X2VuY29kZXIpOwotCi0JCWlmICghKGVuY29kZXItPmNvbXB1dGVfY29uZmln KGVuY29kZXIsIHBpcGVfY29uZmlnLCBjb25uZWN0b3Jfc3RhdGUpKSkgewotCQkJRFJNX0RFQlVH X0tNUygiRW5jb2RlciBjb25maWcgZmFpbHVyZVxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKKwkJ cmV0ID0gZW5jb2Rlci0+Y29tcHV0ZV9jb25maWcoZW5jb2RlciwgcGlwZV9jb25maWcsCisJCQkJ CSAgICAgIGNvbm5lY3Rvcl9zdGF0ZSk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlpZiAocmV0ICE9 IC1FREVBRExLKQorCQkJCURSTV9ERUJVR19LTVMoIkVuY29kZXIgY29uZmlnIGZhaWx1cmU6ICVk XG4iLAorCQkJCQkgICAgICByZXQpOworCQkJcmV0dXJuIHJldDsKIAkJfQogCX0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKaW5kZXggMGEzYWM5OGE3NzllLi5kZjQyOTJiYjFhNGYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYwpAQCAtMTgxOSw3ICsxODE5LDcgQEAgaW50ZWxfZHBfYWRqdXN0X2Nv bXBsaWFuY2VfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiB9CiAKIC8qIE9wdGlt aXplIGxpbmsgY29uZmlnIGluIG9yZGVyOiBtYXggYnBwLCBtaW4gY2xvY2ssIG1pbiBsYW5lcyAq Lwotc3RhdGljIGJvb2wKK3N0YXRpYyBpbnQKIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdf d2lkZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCSAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnLAogCQkJCSAgY29uc3Qgc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0 cyAqbGltaXRzKQpAQCAtMTg0NSwxNyArMTg0NSwxNyBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtf Y29uZmlnX3dpZGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJCQkJcGlwZV9jb25maWct PnBpcGVfYnBwID0gYnBwOwogCQkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxpbmtfY2xv Y2s7CiAKLQkJCQkJcmV0dXJuIHRydWU7CisJCQkJCXJldHVybiAwOwogCQkJCX0KIAkJCX0KIAkJ fQogCX0KIAotCXJldHVybiBmYWxzZTsKKwlyZXR1cm4gLUVJTlZBTDsKIH0KIAogLyogT3B0aW1p emUgbGluayBjb25maWcgaW4gb3JkZXI6IG1heCBicHAsIG1pbiBsYW5lcywgbWluIGNsb2NrICov Ci1zdGF0aWMgYm9vbAorc3RhdGljIGludAogaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19m YXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJICBjb25zdCBzdHJ1Y3QgbGlua19jb25maWdfbGltaXRz ICpsaW1pdHMpCkBAIC0xODgxLDEzICsxODgxLDEzIEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19j b25maWdfZmFzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCQlwaXBlX2NvbmZpZy0+ cGlwZV9icHAgPSBicHA7CiAJCQkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gbGlua19jbG9j azsKIAotCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQkJcmV0dXJuIDA7CiAJCQkJfQogCQkJfQogCQl9 CiAJfQogCi0JcmV0dXJuIGZhbHNlOworCXJldHVybiAtRUlOVkFMOwogfQogCiBzdGF0aWMgaW50 IGludGVsX2RwX2RzY19jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1OCBk c2NfbWF4X2JwYykKQEAgLTE5MDUsMTkgKzE5MDUsMjAgQEAgc3RhdGljIGludCBpbnRlbF9kcF9k c2NfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdTggZHNjX21heF9icGMp CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBib29sIGludGVsX2RwX2RzY19jb21wdXRlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAotCQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcsCi0JCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlLAotCQkJCQlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzICpsaW1pdHMpCitzdGF0aWMgaW50 IGludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAor CQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCisJCQkJICAg ICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAorCQkJCSAgICAgICBz dHJ1Y3QgbGlua19jb25maWdfbGltaXRzICpsaW1pdHMpCiB7CiAJc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRl dik7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAl1OCBkc2NfbWF4X2JwYzsKIAlpbnQgcGlwZV9icHA7 CisJaW50IHJldDsKIAogCWlmICghaW50ZWxfZHBfc3VwcG9ydHNfZHNjKGludGVsX2RwLCBwaXBl X2NvbmZpZykpCi0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlkc2NfbWF4 X2JwYyA9IG1pbl90KHU4LCBEUF9EU0NfTUFYX1NVUFBPUlRFRF9CUEMsCiAJCQkgICAgY29ubl9z dGF0ZS0+bWF4X3JlcXVlc3RlZF9icGMpOwpAQCAtMTkyNSw3ICsxOTI2LDcgQEAgc3RhdGljIGJv b2wgaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs CiAJcGlwZV9icHAgPSBpbnRlbF9kcF9kc2NfY29tcHV0ZV9icHAoaW50ZWxfZHAsIGRzY19tYXhf YnBjKTsKIAlpZiAocGlwZV9icHAgPCBEUF9EU0NfTUlOX1NVUFBPUlRFRF9CUEMgKiAzKSB7CiAJ CURSTV9ERUJVR19LTVMoIk5vIERTQyBzdXBwb3J0IGZvciBsZXNzIHRoYW4gOGJwY1xuIik7Ci0J CXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJLyoKQEAgLTE5NTksNyAr MTk2MCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLAogCQkJCQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNw bGF5KTsKIAkJaWYgKCFkc2NfbWF4X291dHB1dF9icHAgfHwgIWRzY19kcF9zbGljZV9jb3VudCkg ewogCQkJRFJNX0RFQlVHX0tNUygiQ29tcHJlc3NlZCBCUFAvU2xpY2UgQ291bnQgbm90IHN1cHBv cnRlZFxuIik7Ci0JCQlyZXR1cm4gZmFsc2U7CisJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCQlw aXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCA9IG1pbl90KHUxNiwKIAkJCQkJ CQkgICAgICAgZHNjX21heF9vdXRwdXRfYnBwID4+IDQsCkBAIC0xOTc2LDE2ICsxOTc3LDE5IEBA IHN0YXRpYyBib29sIGludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAogCQkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuZHNjX3NwbGl0ID0gdHJ1ZTsK IAkJfSBlbHNlIHsKIAkJCURSTV9ERUJVR19LTVMoIkNhbm5vdCBzcGxpdCBzdHJlYW0gdG8gdXNl IDIgVkRTQyBpbnN0YW5jZXNcbiIpOwotCQkJcmV0dXJuIGZhbHNlOworCQkJcmV0dXJuIC1FSU5W QUw7CiAJCX0KIAl9Ci0JaWYgKGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcyhpbnRlbF9kcCwg cGlwZV9jb25maWcpIDwgMCkgeworCisJcmV0ID0gaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1z KGludGVsX2RwLCBwaXBlX2NvbmZpZyk7CisJaWYgKHJldCA8IDApIHsKIAkJRFJNX0RFQlVHX0tN UygiQ2Fubm90IGNvbXB1dGUgdmFsaWQgRFNDIHBhcmFtZXRlcnMgZm9yIElucHV0IEJwcCA9ICVk ICIKIAkJCSAgICAgICJDb21wcmVzc2VkIEJQUCA9ICVkXG4iLAogCQkJICAgICAgcGlwZV9jb25m aWctPnBpcGVfYnBwLAogCQkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3Nl ZF9icHApOwotCQlyZXR1cm4gZmFsc2U7CisJCXJldHVybiByZXQ7CiAJfQorCiAJcGlwZV9jb25m aWctPmRzY19wYXJhbXMuY29tcHJlc3Npb25fZW5hYmxlID0gdHJ1ZTsKIAlEUk1fREVCVUdfS01T KCJEUCBEU0MgY29tcHV0ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAiCiAJCSAgICAgICJDb21wcmVz c2VkIEJwcCA9ICVkIFNsaWNlIENvdW50ID0gJWRcbiIsCkBAIC0xOTkzLDEwICsxOTk3LDEwIEBA IHN0YXRpYyBib29sIGludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAogCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2Jw cCwKIAkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQpOwogCi0JcmV0 dXJuIHRydWU7CisJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBib29sCitzdGF0aWMgaW50CiBpbnRl bF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQpAQCAtMjAwNSw3ICsyMDA5LDcg QEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNv ZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzIGxpbWl0czsKIAlpbnQgY29t bW9uX2xlbjsKLQlib29sIHJldDsKKwlpbnQgcmV0OwogCiAJY29tbW9uX2xlbiA9IGludGVsX2Rw X2NvbW1vbl9sZW5fcmF0ZV9saW1pdChpbnRlbF9kcCwKIAkJCQkJCSAgICBpbnRlbF9kcC0+bWF4 X2xpbmtfcmF0ZSk7CkBAIC0yMDYzLDEwICsyMDY3LDExIEBAIGludGVsX2RwX2NvbXB1dGVfbGlu a19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAkvKiBlbmFibGUgY29t cHJlc3Npb24gaWYgdGhlIG1vZGUgZG9lc24ndCBmaXQgYXZhaWxhYmxlIEJXICovCiAJRFJNX0RF QlVHX0tNUygiRm9yY2UgRFNDIGVuID0gJWRcbiIsIGludGVsX2RwLT5mb3JjZV9kc2NfZW4pOwot CWlmICghcmV0IHx8IGludGVsX2RwLT5mb3JjZV9kc2NfZW4pIHsKLQkJaWYgKCFpbnRlbF9kcF9k c2NfY29tcHV0ZV9jb25maWcoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAotCQkJCQkJIGNvbm5fc3Rh dGUsICZsaW1pdHMpKQotCQkJcmV0dXJuIGZhbHNlOworCWlmIChyZXQgfHwgaW50ZWxfZHAtPmZv cmNlX2RzY19lbikgeworCQlyZXQgPSBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoaW50ZWxf ZHAsIHBpcGVfY29uZmlnLAorCQkJCQkJICBjb25uX3N0YXRlLCAmbGltaXRzKTsKKwkJaWYgKHJl dCA8IDApCisJCQlyZXR1cm4gcmV0OwogCX0KIAogCWlmIChwaXBlX2NvbmZpZy0+ZHNjX3BhcmFt cy5jb21wcmVzc2lvbl9lbmFibGUpIHsKQEAgLTIwOTEsMTAgKzIwOTYsMTAgQEAgaW50ZWxfZHBf Y29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAg ICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCQkJ CQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7CiAJfQotCXJldHVybiB0cnVlOworCXJl dHVybiAwOwogfQogCi1ib29sCitpbnQKIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnLAogCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCkBAIC0y MTEwLDYgKzIxMTUsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAkJdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoY29ubl9z dGF0ZSk7CiAJYm9vbCBjb25zdGFudF9uID0gZHJtX2RwX2hhc19xdWlyaygmaW50ZWxfZHAtPmRl c2MsCiAJCQkJCSAgIERQX0RQQ0RfUVVJUktfQ09OU1RBTlRfTik7CisJaW50IHJldDsKIAogCWlm IChIQVNfUENIX1NQTElUKGRldl9wcml2KSAmJiAhSEFTX0RESShkZXZfcHJpdikgJiYgcG9ydCAh PSBQT1JUX0EpCiAJCXBpcGVfY29uZmlnLT5oYXNfcGNoX2VuY29kZXIgPSB0cnVlOwpAQCAtMjEz MSw4ICsyMTM3LDYgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJCQkJICAgICAgIGFkanVzdGVkX21vZGUpOwogCiAJCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDkpIHsKLQkJCWludCByZXQ7Ci0KIAkJCXJldCA9IHNrbF91cGRhdGVf c2NhbGVyX2NydGMocGlwZV9jb25maWcpOwogCQkJaWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0OwpA QCAtMjE0NywyMCArMjE1MSwyMSBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl9CiAKIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBE Uk1fTU9ERV9GTEFHX0RCTFNDQU4pCi0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIC1FSU5WQUw7 CiAKIAlpZiAoSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikgJiYKIAkgICAgYWRqdXN0ZWRfbW9k ZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKLQkJcmV0dXJuIGZhbHNlOworCQly ZXR1cm4gLUVJTlZBTDsKIAogCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZM QUdfREJMQ0xLKQotCQlyZXR1cm4gZmFsc2U7CisJCXJldHVybiAtRUlOVkFMOwogCiAJcGlwZV9j b25maWctPmZlY19lbmFibGUgPSAhaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSAmJgogCQkJCSAg aW50ZWxfZHBfc3VwcG9ydHNfZmVjKGludGVsX2RwLCBwaXBlX2NvbmZpZyk7CiAKLQlpZiAoIWlu dGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoZW5jb2RlciwgcGlwZV9jb25maWcsIGNvbm5fc3Rh dGUpKQotCQlyZXR1cm4gZmFsc2U7CisJcmV0ID0gaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZp ZyhlbmNvZGVyLCBwaXBlX2NvbmZpZywgY29ubl9zdGF0ZSk7CisJaWYgKHJldCA8IDApCisJCXJl dHVybiByZXQ7CiAKIAlpZiAoaW50ZWxfY29ubl9zdGF0ZS0+YnJvYWRjYXN0X3JnYiA9PSBJTlRF TF9CUk9BRENBU1RfUkdCX0FVVE8pIHsKIAkJLyoKQEAgLTIyMDgsNyArMjIxMyw3IEBAIGludGVs X2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJaW50 ZWxfcHNyX2NvbXB1dGVfY29uZmlnKGludGVsX2RwLCBwaXBlX2NvbmZpZyk7CiAKLQlyZXR1cm4g dHJ1ZTsKKwlyZXR1cm4gMDsKIH0KIAogdm9pZCBpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKaW5k ZXggM2Y4MzQyOTMzM2M3Li5hMTk2OTkwMjNkYjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwX21zdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw X21zdC5jCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5o PgogI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgogCi1zdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3Rf Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkJCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKLQkJCQkJc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCitzdGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCQkgICAgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHBfbXN0 X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoJmVuY29kZXItPmJhc2UpOwpAQCAtNTIs NyArNTIsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJCSAgIERQX0RQQ0RfUVVJUktfQ09OU1RBTlRf Tik7CiAKIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4p Ci0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlwaXBlX2NvbmZpZy0+b3V0 cHV0X2Zvcm1hdCA9IElOVEVMX09VVFBVVF9GT1JNQVRfUkdCOwogCXBpcGVfY29uZmlnLT5oYXNf cGNoX2VuY29kZXIgPSBmYWxzZTsKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxf ZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQlp ZiAoc2xvdHMgPCAwKSB7CiAJCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgZmluZGluZyB2Y3BpIHNs b3RzOiVkXG4iLAogCQkJCSAgICAgIHNsb3RzKTsKLQkJCXJldHVybiBmYWxzZTsKKwkJCXJldHVy biBzbG90czsKIAkJfQogCX0KIApAQCAtMTA3LDcgKzEwNyw3IEBAIHN0YXRpYyBib29sIGludGVs X2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAog CWludGVsX2RkaV9jb21wdXRlX21pbl92b2x0YWdlX2xldmVsKGRldl9wcml2LCBwaXBlX2NvbmZp Zyk7CiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAppbmRleCA3OTc3ODQzY2UyNmEuLmU1YTQzNmMzMzMwNyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTIyNSw5ICsyMjUsOSBAQCBzdHJ1Y3QgaW50ZWxfZW5j b2RlciB7CiAJZW51bSBpbnRlbF9vdXRwdXRfdHlwZSAoKmNvbXB1dGVfb3V0cHV0X3R5cGUpKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICosCiAJCQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqLAogCQkJCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Ci0JYm9vbCAo KmNvbXB1dGVfY29uZmlnKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAotCQkJICAgICAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICosCi0JCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKik7CisJaW50ICgqY29tcHV0ZV9jb25maWcpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCisJ CQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAorCQkJICAgICAgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKik7CiAJdm9pZCAoKnByZV9wbGxfZW5hYmxlKShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqLAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCiAJ CQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7CkBAIC0xODE2LDkg KzE4MTYsOSBAQCB2b2lkIGludGVsX2RwX3Npbmtfc2V0X2RlY29tcHJlc3Npb25fc3RhdGUoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9yZXNldChzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwogdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3N1c3BlbmQo c3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpOwogdm9pZCBpbnRlbF9kcF9lbmNv ZGVyX2ZsdXNoX3dvcmsoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKLWJvb2wgaW50ZWxf ZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkgICAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKLQkJCSAgICAgc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOworaW50IGludGVsX2RwX2NvbXB1dGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJICAgIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZywKKwkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSk7CiBib29sIGludGVsX2RwX2lzX2VkcChzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKTsKIGJvb2wgaW50ZWxfZHBfaXNfcG9ydF9lZHAoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCk7CiBlbnVtIGlycXJldHVybiBpbnRlbF9kcF9o cGRfcHVsc2Uoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCkBAIC0x OTc4LDkgKzE5NzgsOSBAQCB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGk5MTVfcmVnX3QgaGRtaV9yZWcsCiB2b2lkIGludGVsX2hkbWlfaW5p dF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJ CQkgICAgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKTsKIHN0cnVj dCBpbnRlbF9oZG1pICplbmNfdG9faW50ZWxfaGRtaShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpOwotYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAotCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZywKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Citp bnQgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKKwkJCSAg ICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKIGJvb2wgaW50ZWxf aGRtaV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJCSAgICAg ICBib29sIGhpZ2hfdG1kc19jbG9ja19yYXRpbywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMKaW5k ZXggYmMzYzNjYjU3ZWM2Li5hNmM4MjQ4MmE4NDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5j CkBAIC0yMzQsOSArMjM0LDkgQEAgaW50ZWxfZHZvX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKIAlyZXR1cm4gaW50ZWxfZHZvLT5kZXYuZGV2X29wcy0+bW9kZV92 YWxpZCgmaW50ZWxfZHZvLT5kZXYsIG1vZGUpOwogfQogCi1zdGF0aWMgYm9vbCBpbnRlbF9kdm9f Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkJICAgICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCi0JCQkJICAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKK3N0YXRpYyBpbnQgaW50ZWxfZHZvX2NvbXB1 dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSAgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCisJCQkJICAgIHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9kdm8gKmludGVsX2R2byA9 IGVuY190b19kdm8oZW5jb2Rlcik7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmZp eGVkX21vZGUgPQpAQCAtMjUzLDEwICsyNTMsMTEgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHZvX2Nv bXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQlpbnRlbF9maXhl ZF9wYW5lbF9tb2RlKGZpeGVkX21vZGUsIGFkanVzdGVkX21vZGUpOwogCiAJaWYgKGFkanVzdGVk X21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FOKQotCQlyZXR1cm4gZmFsc2U7CisJ CXJldHVybiAtRUlOVkFMOwogCiAJcGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQgPSBJTlRFTF9P VVRQVVRfRk9STUFUX1JHQjsKLQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiAwOwogfQogCiBzdGF0 aWMgdm9pZCBpbnRlbF9kdm9fcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwppbmRleCA3NGY0MDIxYjc2MGMuLjk3YTk4ZTFi ZWE1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtMTcwNCw5ICsxNzA0LDkgQEAg aW50ZWxfaGRtaV95Y2JjcjQyMF9jb25maWcoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAotCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZywKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSkKK2ludCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAorCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnLAorCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpCiB7CiAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRt aSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CkBAIC0xNzIyLDcgKzE3MjIsNyBAQCBib29sIGlu dGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ Ym9vbCBmb3JjZV9kdmkgPSBpbnRlbF9jb25uX3N0YXRlLT5mb3JjZV9hdWRpbyA9PSBIRE1JX0FV RElPX09GRl9EVkk7CiAKIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFH X0RCTFNDQU4pCi0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlwaXBlX2Nv bmZpZy0+b3V0cHV0X2Zvcm1hdCA9IElOVEVMX09VVFBVVF9GT1JNQVRfUkdCOwogCXBpcGVfY29u ZmlnLT5oYXNfaGRtaV9zaW5rID0gIWZvcmNlX2R2aSAmJiBpbnRlbF9oZG1pLT5oYXNfaGRtaV9z aW5rOwpAQCAtMTc1Myw3ICsxNzUzLDcgQEAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmln KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkJJmNsb2NrXzEyYnBjLCAmY2xv Y2tfMTBicGMsCiAJCQkJCQkmY2xvY2tfOGJwYykpIHsKIAkJCURSTV9FUlJPUigiQ2FuJ3Qgc3Vw cG9ydCBZQ0JDUjQyMCBvdXRwdXRcbiIpOwotCQkJcmV0dXJuIGZhbHNlOworCQkJcmV0dXJuIC1F SU5WQUw7CiAJCX0KIAl9CiAKQEAgLTE4MDMsNyArMTgwMyw3IEBAIGJvb2wgaW50ZWxfaGRtaV9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlpZiAoaGRtaV9w b3J0X2Nsb2NrX3ZhbGlkKGludGVsX2hkbWksIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAogCQkJ CSAgZmFsc2UsIGZvcmNlX2R2aSkgIT0gTU9ERV9PSykgewogCQlEUk1fREVCVUdfS01TKCJ1bnN1 cHBvcnRlZCBIRE1JIGNsb2NrLCByZWplY3RpbmcgbW9kZVxuIik7Ci0JCXJldHVybiBmYWxzZTsK KwkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJLyogU2V0IHVzZXIgc2VsZWN0ZWQgUEFSIHRvIGlu Y29taW5nIG1vZGUncyBtZW1iZXIgKi8KQEAgLTE4MjIsNyArMTgyMiw3IEBAIGJvb2wgaW50ZWxf aGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJfQog CX0KIAotCXJldHVybiB0cnVlOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHZkcy5jCmluZGV4IGIwMWFhY2I1ZDczZC4uNDZhNWRmZDVjZGY3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCkBAIC0zODAsOSArMzgwLDkgQEAgaW50ZWxfbHZkc19t b2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJcmV0dXJuIE1PREVf T0s7CiB9CiAKLXN0YXRpYyBib29sIGludGVsX2x2ZHNfY29tcHV0ZV9jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCi0JCQkJICAgICAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnLAotCQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uX3N0YXRlKQorc3RhdGljIGludCBpbnRlbF9sdmRzX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAorCQkJCSAgICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAorCQkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShpbnRlbF9lbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2x2ZHNfZW5j b2RlciAqbHZkc19lbmNvZGVyID0KQEAgLTM5Niw3ICszOTYsNyBAQCBzdGF0aWMgYm9vbCBpbnRl bF9sdmRzX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy LAogCS8qIFNob3VsZCBuZXZlciBoYXBwZW4hISAqLwogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgNCAmJiBpbnRlbF9jcnRjLT5waXBlID09IDApIHsKIAkJRFJNX0VSUk9SKCJDYW4ndCBzdXBw b3J0IExWRFMgb24gcGlwZSBBXG4iKTsKLQkJcmV0dXJuIGZhbHNlOworCQlyZXR1cm4gLUVJTlZB TDsKIAl9CiAKIAlpZiAobHZkc19lbmNvZGVyLT5hM19wb3dlciA9PSBMVkRTX0EzX1BPV0VSX1VQ KQpAQCAtNDIyLDcgKzQyMiw3IEBAIHN0YXRpYyBib29sIGludGVsX2x2ZHNfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCiAJCQkgICAgICAgYWRqdXN0 ZWRfbW9kZSk7CiAKIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RC TFNDQU4pCi0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoSEFTX1BD SF9TUExJVChkZXZfcHJpdikpIHsKIAkJcGlwZV9jb25maWctPmhhc19wY2hfZW5jb2RlciA9IHRy dWU7CkBAIC00NDEsNyArNDQxLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfbHZkc19jb21wdXRlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKIAkgKiB1c2VyJ3MgcmVx dWVzdGVkIHJlZnJlc2ggcmF0ZS4KIAkgKi8KIAotCXJldHVybiB0cnVlOworCXJldHVybiAwOwog fQogCiBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c2R2by5jCmluZGV4IDRkYjdhZWZhODhmOS4uZGYyZDgzMGE3NDA1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc2R2by5jCkBAIC0xMTA3LDkgKzExMDcsOSBAQCBzdGF0aWMgdm9pZCBpOXh4X2FkanVz dF9zZHZvX3R2X2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIAlw aXBlX2NvbmZpZy0+Y2xvY2tfc2V0ID0gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgaW50ZWxfc2R2 b19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJCQkgICAg ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCi0JCQkJICAgICAgc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCitzdGF0aWMgaW50IGludGVsX3Nkdm9f Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJICAgICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCisJCQkJICAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfc2R2byAqaW50 ZWxfc2R2byA9IHRvX3Nkdm8oZW5jb2Rlcik7CiAJc3RydWN0IGludGVsX3Nkdm9fY29ubmVjdG9y X3N0YXRlICppbnRlbF9zZHZvX3N0YXRlID0KQEAgLTExMzQsNyArMTEzNCw3IEBAIHN0YXRpYyBi b29sIGludGVsX3Nkdm9fY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJICovCiAJaWYgKElTX1RWKGludGVsX3Nkdm9fY29ubmVjdG9yKSkgewogCQlpZiAoIWlu dGVsX3Nkdm9fc2V0X291dHB1dF90aW1pbmdzX2Zyb21fbW9kZShpbnRlbF9zZHZvLCBtb2RlKSkK LQkJCXJldHVybiBmYWxzZTsKKwkJCXJldHVybiAtRUlOVkFMOwogCiAJCSh2b2lkKSBpbnRlbF9z ZHZvX2dldF9wcmVmZXJyZWRfaW5wdXRfbW9kZShpbnRlbF9zZHZvLAogCQkJCQkJCSAgIGludGVs X3Nkdm9fY29ubmVjdG9yLApAQCAtMTE0NCw3ICsxMTQ0LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxf c2R2b19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl9IGVs c2UgaWYgKElTX0xWRFMoaW50ZWxfc2R2b19jb25uZWN0b3IpKSB7CiAJCWlmICghaW50ZWxfc2R2 b19zZXRfb3V0cHV0X3RpbWluZ3NfZnJvbV9tb2RlKGludGVsX3Nkdm8sCiAJCQkJCQkJICAgICBp bnRlbF9zZHZvX2Nvbm5lY3Rvci0+YmFzZS5wYW5lbC5maXhlZF9tb2RlKSkKLQkJCXJldHVybiBm YWxzZTsKKwkJCXJldHVybiAtRUlOVkFMOwogCiAJCSh2b2lkKSBpbnRlbF9zZHZvX2dldF9wcmVm ZXJyZWRfaW5wdXRfbW9kZShpbnRlbF9zZHZvLAogCQkJCQkJCSAgIGludGVsX3Nkdm9fY29ubmVj dG9yLApAQCAtMTE1Myw3ICsxMTUzLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfc2R2b19jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl9CiAKIAlpZiAoYWRqdXN0 ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCi0JCXJldHVybiBmYWxzZTsK KwkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKgogCSAqIE1ha2UgdGhlIENSVEMgY29kZSBmYWN0b3Ig aW4gdGhlIFNEVk8gcGl4ZWwgbXVsdGlwbGllci4gIFRoZQpAQCAtMTE5Myw3ICsxMTkzLDcgQEAg c3RhdGljIGJvb2wgaW50ZWxfc2R2b19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAlpZiAoaW50ZWxfc2R2b19jb25uZWN0b3ItPmlzX2hkbWkpCiAJCWFkanVz dGVkX21vZGUtPnBpY3R1cmVfYXNwZWN0X3JhdGlvID0gY29ubl9zdGF0ZS0+cGljdHVyZV9hc3Bl Y3RfcmF0aW87CiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gMDsKIH0KIAogI2RlZmluZSBVUERB VEVfUFJPUEVSVFkoaW5wdXQsIE5BTUUpIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3R2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCmluZGV4IGQ3 YTQxNGNlMjc3NC4uYmQ1NTM2ZjBlYzkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF90di5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMKQEAgLTg2 OSw3ICs4NjksNyBAQCBpbnRlbF90dl9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IHBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrOwogfQogCi1zdGF0aWMgYm9vbAorc3RhdGljIGludAogaW50 ZWxfdHZfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQlzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKQEAgLTg3OSwxMCArODc5LDEwIEBAIGludGVsX3R2X2Nv bXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkmcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAogCWlmICghdHZfbW9kZSkKLQkJcmV0dXJuIGZhbHNl OworCQlyZXR1cm4gLUVJTlZBTDsKIAogCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9N T0RFX0ZMQUdfREJMU0NBTikKLQkJcmV0dXJuIGZhbHNlOworCQlyZXR1cm4gLUVJTlZBTDsKIAog CXBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0ID0gSU5URUxfT1VUUFVUX0ZPUk1BVF9SR0I7CiAJ YWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayA9IHR2X21vZGUtPmNsb2NrOwpAQCAtODk3LDcgKzg5 Nyw3IEBAIGludGVsX3R2X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCSAqIG9yIHdoZXRoZXIgdXNlcnNwYWNlIGlzIGRvaW5nIHNvbWV0aGluZyBzdHVwaWQu CiAJICovCiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Zsdl9kc2kuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3Zsdl9kc2kuYwppbmRleCBkMTE2ZmVhZDg1MTQuLmMyNDdjZTc0YjcxYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvdmx2X2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3Zsdl9kc2kuYwpAQCAtMjU2LDkgKzI1Niw5IEBAIHN0YXRpYyB2b2lkIGJhbmRfZ2Fw X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAltdXRleF91bmxvY2so JmRldl9wcml2LT5zYl9sb2NrKTsKIH0KIAotc3RhdGljIGJvb2wgaW50ZWxfZHNpX2NvbXB1dGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAotCQkJCSAgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAotCQkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCitzdGF0aWMgaW50IGludGVsX2RzaV9jb21wdXRlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCQkgICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAorCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kg PSBjb250YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGludGVsX2RzaSwKQEAgLTI4NCw3ICsyODQs NyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kc2lfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJfQogCiAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01P REVfRkxBR19EQkxTQ0FOKQotCQlyZXR1cm4gZmFsc2U7CisJCXJldHVybiAtRUlOVkFMOwogCiAJ LyogRFNJIHVzZXMgc2hvcnQgcGFja2V0cyBmb3Igc3luYyBldmVudHMsIHNvIGNsZWFyIG1vZGUg ZmxhZ3MgZm9yIERTSSAqLwogCWFkanVzdGVkX21vZGUtPmZsYWdzID0gMDsKQEAgLTMwMiwxNiAr MzAyLDE2IEBAIHN0YXRpYyBib29sIGludGVsX2RzaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCQlyZXQgPSBieHRfZHNpX3BsbF9jb21wdXRlKGVuY29k ZXIsIHBpcGVfY29uZmlnKTsKIAkJaWYgKHJldCkKLQkJCXJldHVybiBmYWxzZTsKKwkJCXJldHVy biAtRUlOVkFMOwogCX0gZWxzZSB7CiAJCXJldCA9IHZsdl9kc2lfcGxsX2NvbXB1dGUoZW5jb2Rl ciwgcGlwZV9jb25maWcpOwogCQlpZiAocmV0KQotCQkJcmV0dXJuIGZhbHNlOworCQkJcmV0dXJu IC1FSU5WQUw7CiAJfQogCiAJcGlwZV9jb25maWctPmNsb2NrX3NldCA9IHRydWU7CiAKLQlyZXR1 cm4gdHJ1ZTsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGJvb2wgZ2xrX2RzaV9lbmFibGVfaW8o c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=