From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2] drm/i915: Remove all ->config dereferences from intel_hdmi, v2. Date: Wed, 23 Nov 2016 15:57:00 +0100 Message-ID: <8b02a6b4-606a-e43a-b357-ad17f491525b@linux.intel.com> References: <20161122132033.GA31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F0876E021 for ; Wed, 23 Nov 2016 14:57:03 +0000 (UTC) In-Reply-To: <20161122132033.GA31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org SW4gYWxsIGNhc2VzIHdlIGNhbiBub3cgb2J0YWluIHRoZSByZWxldmFudCBjcnRjX3N0YXRlL2Nv bm5fc3RhdGUKZnJvbSB0aGUgcmVsZXZhbnQgY2FsbGJhY2tzLCB3aGljaCBtZWFucyBhbGwgdGhl IC0+Y29uZmlnIGFjY2Vzc2VzCmNhbiBiZSByZW1vdmVkIGFuZCB0aGUgY29kZSBjbGVhbmVkIHVw LgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBjc3RhdGUgLT4gY3J0Y19zdGF0ZQoKU2lnbmVkLW9mZi1i eTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4K LS0tCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCmluZGV4IDEwZWM5ZDRiN2Q0NS4uMGQ2ODBkYWJh Yzc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwpAQCAtMTcwMSw3ICsxNzAxLDggQEAgc3Rh dGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAKIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2hkbWkoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgICAgYm9vbCBoYXNfaGRtaV9zaW5rLAotCQkJ CSAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlLAorCQkJCSAgICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJCSAgICAgIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAogCQkJCSAgICAgIHN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQogewogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRl bF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwpAQCAtMTcyMSw3ICsx NzIyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfaGRtaShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCWludGVsX2hkbWktPnNldF9pbmZvZnJhbWVzKGRybV9l bmNvZGVyLAogCQkJCSAgIGhhc19oZG1pX3NpbmssCi0JCQkJICAgYWRqdXN0ZWRfbW9kZSk7CisJ CQkJICAgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2Rk aV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLApAQCAtMTc0 Miw4ICsxNzQzLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCiAJfQogCWlmICh0eXBlID09IElOVEVMX09VVFBV VF9IRE1JKSB7CiAJCWludGVsX2RkaV9wcmVfZW5hYmxlX2hkbWkoaW50ZWxfZW5jb2RlciwKLQkJ CQkJICBjcnRjLT5jb25maWctPmhhc19oZG1pX3NpbmssCi0JCQkJCSAgJmNydGMtPmNvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlLAorCQkJCQkgIHBpcGVfY29uZmlnLT5oYXNfaGRtaV9zaW5rLAor CQkJCQkgIHBpcGVfY29uZmlnLCBjb25uX3N0YXRlLAogCQkJCQkgIGNydGMtPmNvbmZpZy0+c2hh cmVkX2RwbGwpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggY2QxMzJjMjE2 YTY3Li4yMGRmZjE4MzdjNWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC04NDAsMTEg Kzg0MCwxMyBAQCBzdHJ1Y3QgaW50ZWxfaGRtaSB7CiAJZW51bSBoZG1pX3BpY3R1cmVfYXNwZWN0 IGFzcGVjdF9yYXRpbzsKIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICphdHRhY2hlZF9jb25uZWN0 b3I7CiAJdm9pZCAoKndyaXRlX2luZm9mcmFtZSkoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LAorCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCWVu dW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlLAogCQkJCWNvbnN0IHZvaWQgKmZyYW1lLCBzc2l6 ZV90IGxlbik7CiAJdm9pZCAoKnNldF9pbmZvZnJhbWVzKShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsCiAJCQkgICAgICAgYm9vbCBlbmFibGUsCi0JCQkgICAgICAgY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpOworCQkJICAgICAgIGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKIAlib29sICgqaW5mb2ZyYW1lX2VuYWJsZWQp KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCmlu ZGV4IGZiODhlMzJlMjVhMy4uYmIyOTIzMGUwMjFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRt aS5jCkBAIC0xMzMsNiArMTMzLDcgQEAgaHN3X2RpcF9kYXRhX3JlZyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiB9CiAKIHN0YXRpYyB2b2lkIGc0eF93cml0ZV9pbmZvZnJhbWUo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlLAog CQkJCWNvbnN0IHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbikKIHsKQEAgLTE4NywxMyArMTg4LDE0 IEBAIHN0YXRpYyBib29sIGc0eF9pbmZvZnJhbWVfZW5hYmxlZChzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsCiB9CiAKIHN0YXRpYyB2b2lkIGlieF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLAorCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCQkJCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlLAogCQkJCWNvbnN0 IHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbikKIHsKIAljb25zdCB1aW50MzJfdCAqZGF0YSA9IGZy YW1lOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUp OwogCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKIAlpbnQgaTsKQEAgLTI0NiwxMyArMjQ4LDE0 IEBAIHN0YXRpYyBib29sIGlieF9pbmZvZnJhbWVfZW5hYmxlZChzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsCiB9CiAKIHN0YXRpYyB2b2lkIGNwdF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLAorCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCQkJCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlLAogCQkJCWNvbnN0 IHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbikKIHsKIAljb25zdCB1aW50MzJfdCAqZGF0YSA9IGZy YW1lOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUp OwogCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKIAlpbnQgaTsKQEAgLTMwMywxMyArMzA2LDE0 IEBAIHN0YXRpYyBib29sIGNwdF9pbmZvZnJhbWVfZW5hYmxlZChzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsCiB9CiAKIHN0YXRpYyB2b2lkIHZsdl93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLAorCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCQkJCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlLAogCQkJCWNvbnN0 IHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbikKIHsKIAljb25zdCB1aW50MzJfdCAqZGF0YSA9IGZy YW1lOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKIAlpOTE1X3JlZ190IHJlZyA9IFZMVl9UVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5w aXBlKTsKIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7CiAJaW50IGk7CkBAIC0zNjEsMTQgKzM2 NSwxNCBAQCBzdGF0aWMgYm9vbCB2bHZfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLAogfQogCiBzdGF0aWMgdm9pZCBoc3dfd3JpdGVfaW5mb2ZyYW1lKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKIAkJCQllbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSwKIAkJCQlj b25zdCB2b2lkICpmcmFtZSwgc3NpemVfdCBsZW4pCiB7CiAJY29uc3QgdWludDMyX3QgKmRhdGEg PSBmcmFtZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Ci0JZW51 bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJh bnNjb2RlcjsKKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5j cHVfdHJhbnNjb2RlcjsKIAlpOTE1X3JlZ190IGN0bF9yZWcgPSBIU1dfVFZJREVPX0RJUF9DVEwo Y3B1X3RyYW5zY29kZXIpOwogCWk5MTVfcmVnX3QgZGF0YV9yZWc7CiAJaW50IGk7CkBAIC00MjUs NiArNDI5LDcgQEAgc3RhdGljIGJvb2wgaHN3X2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKICAqIGJ5dGVzIGJ5IG9uZS4KICAqLwogc3RhdGljIHZvaWQgaW50 ZWxfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwkJCQkgIGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgdW5pb24gaGRt aV9pbmZvZnJhbWUgKmZyYW1lKQogewogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0g ZW5jX3RvX2ludGVsX2hkbWkoZW5jb2Rlcik7CkBAIC00NDMsMjYgKzQ0OCwyNSBAQCBzdGF0aWMg dm9pZCBpbnRlbF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAog CWJ1ZmZlclszXSA9IDA7CiAJbGVuKys7CiAKLQlpbnRlbF9oZG1pLT53cml0ZV9pbmZvZnJhbWUo ZW5jb2RlciwgZnJhbWUtPmFueS50eXBlLCBidWZmZXIsIGxlbik7CisJaW50ZWxfaGRtaS0+d3Jp dGVfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUsIGZyYW1lLT5hbnkudHlwZSwgYnVmZmVy LCBsZW4pOwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKLQkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlKQorCQkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNf dG9faW50ZWxfaGRtaShlbmNvZGVyKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7CiAJdW5pb24gaGRtaV9pbmZvZnJhbWUgZnJh bWU7CiAJaW50IHJldDsKIAogCXJldCA9IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNw bGF5X21vZGUoJmZyYW1lLmF2aSwKLQkJCQkJCSAgICAgICBhZGp1c3RlZF9tb2RlKTsKKwkJCQkJ CSAgICAgICAmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlKTsKIAlpZiAocmV0IDwgMCkg ewogCQlEUk1fRVJST1IoImNvdWxkbid0IGZpbGwgQVZJIGluZm9mcmFtZVxuIik7CiAJCXJldHVy bjsKIAl9CiAKIAlpZiAoaW50ZWxfaGRtaS0+cmdiX3F1YW50X3JhbmdlX3NlbGVjdGFibGUpIHsK LQkJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSkKKwkJaWYgKGNy dGNfc3RhdGUtPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCiAJCQlmcmFtZS5hdmkucXVhbnRpemF0aW9u X3JhbmdlID0KIAkJCQlIRE1JX1FVQU5USVpBVElPTl9SQU5HRV9MSU1JVEVEOwogCQllbHNlCkBA IC00NzAsMTAgKzQ3NCwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3NldF9hdmlfaW5mb2Zy YW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCQlIRE1JX1FVQU5USVpBVElPTl9S QU5HRV9GVUxMOwogCX0KIAotCWludGVsX3dyaXRlX2luZm9mcmFtZShlbmNvZGVyLCAmZnJhbWUp OworCWludGVsX3dyaXRlX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlLCAmZnJhbWUpOwog fQogCi1zdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3NldF9zcGRfaW5mb2ZyYW1lKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lkIGludGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJh bWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorCQkJCQkgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJdW5pb24gaGRtaV9pbmZvZnJhbWUgZnJhbWU7 CiAJaW50IHJldDsKQEAgLTQ4NiwyNyArNDkxLDI4IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlf c2V0X3NwZF9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCiAJZnJhbWUu c3BkLnNkaSA9IEhETUlfU1BEX1NESV9QQzsKIAotCWludGVsX3dyaXRlX2luZm9mcmFtZShlbmNv ZGVyLCAmZnJhbWUpOworCWludGVsX3dyaXRlX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRl LCAmZnJhbWUpOwogfQogCiBzdGF0aWMgdm9pZAogaW50ZWxfaGRtaV9zZXRfaGRtaV9pbmZvZnJh bWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAotCQkJICAgICAgY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAl1bmlvbiBoZG1pX2luZm9mcmFtZSBmcmFt ZTsKIAlpbnQgcmV0OwogCiAJcmV0ID0gZHJtX2hkbWlfdmVuZG9yX2luZm9mcmFtZV9mcm9tX2Rp c3BsYXlfbW9kZSgmZnJhbWUudmVuZG9yLmhkbWksCi0JCQkJCQkJICBhZGp1c3RlZF9tb2RlKTsK KwkJCQkJCQkgICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUpOwogCWlmIChyZXQgPCAw KQogCQlyZXR1cm47CiAKLQlpbnRlbF93cml0ZV9pbmZvZnJhbWUoZW5jb2RlciwgJmZyYW1lKTsK KwlpbnRlbF93cml0ZV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSwgJmZyYW1lKTsKIH0K IAogc3RhdGljIHZvaWQgZzR4X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKIAkJCSAgICAgICBib29sIGVuYWJsZSwKLQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmRldik7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7CkBAIC01NjAs MjggKzU2NiwxNiBAQCBzdGF0aWMgdm9pZCBnNHhfc2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLAogCUk5MTVfV1JJVEUocmVnLCB2YWwpOwogCVBPU1RJTkdfUkVBRChy ZWcpOwogCi0JaW50ZWxfaGRtaV9zZXRfYXZpX2luZm9mcmFtZShlbmNvZGVyLCBhZGp1c3RlZF9t b2RlKTsKLQlpbnRlbF9oZG1pX3NldF9zcGRfaW5mb2ZyYW1lKGVuY29kZXIpOwotCWludGVsX2hk bWlfc2V0X2hkbWlfaW5mb2ZyYW1lKGVuY29kZXIsIGFkanVzdGVkX21vZGUpOworCWludGVsX2hk bWlfc2V0X2F2aV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7CisJaW50ZWxfaGRtaV9z ZXRfc3BkX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlKTsKKwlpbnRlbF9oZG1pX3NldF9o ZG1pX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlKTsKIH0KIAotc3RhdGljIGJvb2wgaGRt aV9zaW5rX2lzX2RlZXBfY29sb3Ioc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQorc3RhdGlj IGJvb2wgaGRtaV9zaW5rX2lzX2RlZXBfY29sb3IoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5fc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXIt PmRldjsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwotCi0JV0FSTl9PTighZHJt X21vZGVzZXRfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpKTsK KwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9y OwogCi0JLyoKLQkgKiBIRE1JIGNsb25pbmcgaXMgb25seSBzdXBwb3J0ZWQgb24gZzR4IHdoaWNo IGRvZXNuJ3QKLQkgKiBzdXBwb3J0IGRlZXAgY29sb3Igb3IgR0NQIGluZm9mcmFtZXMgYW55d2F5 IHNvIG5vCi0JICogbmVlZCB0byB3b3JyeSBhYm91dCBtdWx0aXBsZSBIRE1JIHNpbmtzIGhlcmUu Ci0JICovCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmln LmNvbm5lY3Rvcl9saXN0LCBoZWFkKQotCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29k ZXIpCi0JCQlyZXR1cm4gY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBjID4gODsKLQotCXJldHVy biBmYWxzZTsKKwlyZXR1cm4gY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBjID4gODsKIH0KIAog LyoKQEAgLTYyNywxNSArNjIxLDE3IEBAIHN0YXRpYyBib29sIGdjcF9kZWZhdWx0X3BoYXNlX3Bv c3NpYmxlKGludCBwaXBlX2JwcCwKIAkJIG1vZGUtPmNydGNfaHRvdGFsLzIgJSBwaXhlbHNfcGVy X2dyb3VwID09IDApOwogfQogCi1zdGF0aWMgYm9vbCBpbnRlbF9oZG1pX3NldF9nY3BfaW5mb2Zy YW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyBib29sIGludGVsX2hkbWlf c2V0X2djcF9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorCQkJCQkgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkJCSBjb25zdCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmRldik7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCWk5 MTVfcmVnX3QgcmVnOwogCXUzMiB2YWwgPSAwOwogCiAJaWYgKEhBU19EREkoZGV2X3ByaXYpKQot CQlyZWcgPSBIU1dfVFZJREVPX0RJUF9HQ1AoY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2Rlcik7 CisJCXJlZyA9IEhTV19UVklERU9fRElQX0dDUChjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2Rlcik7 CiAJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpCiAJCXJlZyA9IFZMVl9UVklERU9fRElQX0dDUChjcnRjLT5waXBlKTsKIAllbHNlIGlm IChIQVNfUENIX1NQTElUKGRldl9wcml2KSkKQEAgLTY0NCwxMiArNjQwLDEyIEBAIHN0YXRpYyBi b29sIGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBJbmRpY2F0ZSBjb2xvciBkZXB0aCB3aGVuZXZl ciB0aGUgc2luayBzdXBwb3J0cyBkZWVwIGNvbG9yICovCi0JaWYgKGhkbWlfc2lua19pc19kZWVw X2NvbG9yKGVuY29kZXIpKQorCWlmIChoZG1pX3NpbmtfaXNfZGVlcF9jb2xvcihjb25uX3N0YXRl KSkKIAkJdmFsIHw9IEdDUF9DT0xPUl9JTkRJQ0FUSU9OOwogCiAJLyogRW5hYmxlIGRlZmF1bHRf cGhhc2Ugd2hlbmV2ZXIgdGhlIGRpc3BsYXkgbW9kZSBpcyBzdWl0YWJseSBhbGlnbmVkICovCi0J aWYgKGdjcF9kZWZhdWx0X3BoYXNlX3Bvc3NpYmxlKGNydGMtPmNvbmZpZy0+cGlwZV9icHAsCi0J CQkJICAgICAgICZjcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZSkpCisJaWYgKGdjcF9k ZWZhdWx0X3BoYXNlX3Bvc3NpYmxlKGNydGNfc3RhdGUtPnBpcGVfYnBwLAorCQkJCSAgICAgICAm Y3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlKSkKIAkJdmFsIHw9IEdDUF9ERUZBVUxUX1BI QVNFX0VOQUJMRTsKIAogCUk5MTVfV1JJVEUocmVnLCB2YWwpOwpAQCAtNjU5LDEwICs2NTUsMTEg QEAgc3RhdGljIGJvb2wgaW50ZWxfaGRtaV9zZXRfZ2NwX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCiAKIHN0YXRpYyB2b2lkIGlieF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICAgYm9vbCBlbmFibGUsCi0JCQkgICAgICAg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCisJCQkgICAgICAg Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgICAgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5kZXYpOwotCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9y dCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxf aGRtaSA9ICZpbnRlbF9kaWdfcG9ydC0+aGRtaTsKIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19E SVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwpAQCAtNjk4LDIzICs2OTUsMjQgQEAgc3RhdGljIHZv aWQgaWJ4X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJIFZJ REVPX0RJUF9FTkFCTEVfVkVORE9SIHwgVklERU9fRElQX0VOQUJMRV9HQU1VVCB8CiAJCSBWSURF T19ESVBfRU5BQkxFX1NQRCB8IFZJREVPX0RJUF9FTkFCTEVfR0NQKTsKIAotCWlmIChpbnRlbF9o ZG1pX3NldF9nY3BfaW5mb2ZyYW1lKGVuY29kZXIpKQorCWlmIChpbnRlbF9oZG1pX3NldF9nY3Bf aW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUsIGNvbm5fc3RhdGUpKQogCQl2YWwgfD0gVklE RU9fRElQX0VOQUJMRV9HQ1A7CiAKIAlJOTE1X1dSSVRFKHJlZywgdmFsKTsKIAlQT1NUSU5HX1JF QUQocmVnKTsKIAotCWludGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJhbWUoZW5jb2RlciwgYWRqdXN0 ZWRfbW9kZSk7Ci0JaW50ZWxfaGRtaV9zZXRfc3BkX2luZm9mcmFtZShlbmNvZGVyKTsKLQlpbnRl bF9oZG1pX3NldF9oZG1pX2luZm9mcmFtZShlbmNvZGVyLCBhZGp1c3RlZF9tb2RlKTsKKwlpbnRl bF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUpOworCWludGVsX2hk bWlfc2V0X3NwZF9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7CisJaW50ZWxfaGRtaV9z ZXRfaGRtaV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7CiB9CiAKIHN0YXRpYyB2b2lk IGNwdF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAg ICAgYm9vbCBlbmFibGUsCi0JCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkX21vZGUpCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxf aGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKGVuY29kZXIpOwogCWk5MTVfcmVn X3QgcmVnID0gVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7CiAJdTMyIHZhbCA9IEk5 MTVfUkVBRChyZWcpOwpAQCAtNzQwLDI0ICs3MzgsMjUgQEAgc3RhdGljIHZvaWQgY3B0X3NldF9p bmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAl2YWwgJj0gfihWSURFT19E SVBfRU5BQkxFX1ZFTkRPUiB8IFZJREVPX0RJUF9FTkFCTEVfR0FNVVQgfAogCQkgVklERU9fRElQ X0VOQUJMRV9TUEQgfCBWSURFT19ESVBfRU5BQkxFX0dDUCk7CiAKLQlpZiAoaW50ZWxfaGRtaV9z ZXRfZ2NwX2luZm9mcmFtZShlbmNvZGVyKSkKKwlpZiAoaW50ZWxfaGRtaV9zZXRfZ2NwX2luZm9m cmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlLCBjb25uX3N0YXRlKSkKIAkJdmFsIHw9IFZJREVPX0RJ UF9FTkFCTEVfR0NQOwogCiAJSTkxNV9XUklURShyZWcsIHZhbCk7CiAJUE9TVElOR19SRUFEKHJl Zyk7CiAKLQlpbnRlbF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKGVuY29kZXIsIGFkanVzdGVkX21v ZGUpOwotCWludGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJhbWUoZW5jb2Rlcik7Ci0JaW50ZWxfaGRt aV9zZXRfaGRtaV9pbmZvZnJhbWUoZW5jb2RlciwgYWRqdXN0ZWRfbW9kZSk7CisJaW50ZWxfaGRt aV9zZXRfYXZpX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlKTsKKwlpbnRlbF9oZG1pX3Nl dF9zcGRfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUpOworCWludGVsX2hkbWlfc2V0X2hk bWlfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUpOwogfQogCiBzdGF0aWMgdm9pZCB2bHZf c2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIGJv b2wgZW5hYmxlLAotCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlKQorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25u X3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9y dCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CiAJc3Ry dWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaShlbmNvZGVyKTsK IAlpOTE1X3JlZ190IHJlZyA9IFZMVl9UVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsK IAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7CkBAIC03OTIsMjUgKzc5MSwyNSBAQCBzdGF0aWMg dm9pZCB2bHZfc2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkg VklERU9fRElQX0VOQUJMRV9WRU5ET1IgfCBWSURFT19ESVBfRU5BQkxFX0dBTVVUIHwKIAkJIFZJ REVPX0RJUF9FTkFCTEVfU1BEIHwgVklERU9fRElQX0VOQUJMRV9HQ1ApOwogCi0JaWYgKGludGVs X2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoZW5jb2RlcikpCisJaWYgKGludGVsX2hkbWlfc2V0X2dj cF9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSkpCiAJCXZhbCB8PSBW SURFT19ESVBfRU5BQkxFX0dDUDsKIAogCUk5MTVfV1JJVEUocmVnLCB2YWwpOwogCVBPU1RJTkdf UkVBRChyZWcpOwogCi0JaW50ZWxfaGRtaV9zZXRfYXZpX2luZm9mcmFtZShlbmNvZGVyLCBhZGp1 c3RlZF9tb2RlKTsKLQlpbnRlbF9oZG1pX3NldF9zcGRfaW5mb2ZyYW1lKGVuY29kZXIpOwotCWlu dGVsX2hkbWlfc2V0X2hkbWlfaW5mb2ZyYW1lKGVuY29kZXIsIGFkanVzdGVkX21vZGUpOworCWlu dGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7CisJaW50ZWxf aGRtaV9zZXRfc3BkX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlKTsKKwlpbnRlbF9oZG1p X3NldF9oZG1pX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlKTsKIH0KIAogc3RhdGljIHZv aWQgaHN3X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCSAg ICAgICBib29sIGVuYWJsZSwKLQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSkKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9o ZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoZW5jb2Rlcik7Ci0JaTkxNV9yZWdfdCByZWcgPSBIU1df VFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2Rlcik7CisJaTkx NV9yZWdfdCByZWcgPSBIU1dfVFZJREVPX0RJUF9DVEwoY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29k ZXIpOwogCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKIAogCWFzc2VydF9oZG1pX3BvcnRfZGlz YWJsZWQoaW50ZWxfaGRtaSk7CkBAIC04MjUsMTUgKzgyNCwxNSBAQCBzdGF0aWMgdm9pZCBoc3df c2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQlyZXR1cm47CiAJ fQogCi0JaWYgKGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoZW5jb2RlcikpCisJaWYgKGlu dGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSwgY29ubl9zdGF0 ZSkpCiAJCXZhbCB8PSBWSURFT19ESVBfRU5BQkxFX0dDUF9IU1c7CiAKIAlJOTE1X1dSSVRFKHJl ZywgdmFsKTsKIAlQT1NUSU5HX1JFQUQocmVnKTsKIAotCWludGVsX2hkbWlfc2V0X2F2aV9pbmZv ZnJhbWUoZW5jb2RlciwgYWRqdXN0ZWRfbW9kZSk7Ci0JaW50ZWxfaGRtaV9zZXRfc3BkX2luZm9m cmFtZShlbmNvZGVyKTsKLQlpbnRlbF9oZG1pX3NldF9oZG1pX2luZm9mcmFtZShlbmNvZGVyLCBh ZGp1c3RlZF9tb2RlKTsKKwlpbnRlbF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKGVuY29kZXIsIGNy dGNfc3RhdGUpOworCWludGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19z dGF0ZSk7CisJaW50ZWxfaGRtaV9zZXRfaGRtaV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0 ZSk7CiB9CiAKIHZvaWQgaW50ZWxfZHBfZHVhbF9tb2RlX3NldF90bWRzX291dHB1dChzdHJ1Y3Qg aW50ZWxfaGRtaSAqaGRtaSwgYm9vbCBlbmFibGUpCkBAIC04NTIsMzEgKzg1MSwzMiBAQCB2b2lk IGludGVsX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoc3RydWN0IGludGVsX2hkbWkgKmhk bWksIGJvb2wgZW5hYmxlKQogCQkJCQkgYWRhcHRlciwgZW5hYmxlKTsKIH0KIAotc3RhdGljIHZv aWQgaW50ZWxfaGRtaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQorc3Rh dGljIHZvaWQgaW50ZWxfaGRtaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CiAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5j b2Rlci0+YmFzZSk7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlOwogCXUzMiBoZG1pX3ZhbDsKIAogCWludGVsX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19v dXRwdXQoaW50ZWxfaGRtaSwgdHJ1ZSk7CiAKIAloZG1pX3ZhbCA9IFNEVk9fRU5DT0RJTkdfSERN STsKLQlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpICYmIGNydGMtPmNvbmZpZy0+bGltaXRl ZF9jb2xvcl9yYW5nZSkKKwlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpICYmIGNydGNfc3Rh dGUtPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCiAJCWhkbWlfdmFsIHw9IEhETUlfQ09MT1JfUkFOR0Vf MTZfMjM1OwogCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUFZTWU5D KQogCQloZG1pX3ZhbCB8PSBTRFZPX1ZTWU5DX0FDVElWRV9ISUdIOwogCWlmIChhZGp1c3RlZF9t b2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUEhTWU5DKQogCQloZG1pX3ZhbCB8PSBTRFZPX0hT WU5DX0FDVElWRV9ISUdIOwogCi0JaWYgKGNydGMtPmNvbmZpZy0+cGlwZV9icHAgPiAyNCkKKwlp ZiAoY3J0Y19zdGF0ZS0+cGlwZV9icHAgPiAyNCkKIAkJaGRtaV92YWwgfD0gSERNSV9DT0xPUl9G T1JNQVRfMTJicGM7CiAJZWxzZQogCQloZG1pX3ZhbCB8PSBTRFZPX0NPTE9SX0ZPUk1BVF84YnBj OwogCi0JaWYgKGNydGMtPmNvbmZpZy0+aGFzX2hkbWlfc2luaykKKwlpZiAoY3J0Y19zdGF0ZS0+ aGFzX2hkbWlfc2luaykKIAkJaGRtaV92YWwgfD0gSERNSV9NT0RFX1NFTEVDVF9IRE1JOwogCiAJ aWYgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSkKQEAgLTk3OSw5ICs5NzksOSBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9lbmFibGVfaGRtaV9hdWRpbyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJCSAgICBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7 CiAKLQlXQVJOX09OKCFjcnRjLT5jb25maWctPmhhc19oZG1pX3NpbmspOworCVdBUk5fT04oIXBp cGVfY29uZmlnLT5oYXNfaGRtaV9zaW5rKTsKIAlEUk1fREVCVUdfRFJJVkVSKCJFbmFibGluZyBI RE1JIGF1ZGlvIG9uIHBpcGUgJWNcbiIsCiAJCQkgcGlwZV9uYW1lKGNydGMtPnBpcGUpKTsKIAlp bnRlbF9hdWRpb19jb2RlY19lbmFibGUoZW5jb2RlciwgcGlwZV9jb25maWcsIGNvbm5fc3RhdGUp OwpAQCAtMTAxNSwxNCArMTAxNSwxMyBAQCBzdGF0aWMgdm9pZCBpYnhfZW5hYmxlX2hkbWkoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGVuY29kZXItPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo ZW5jb2Rlci0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVu Y190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKIAl1MzIgdGVtcDsKIAogCXRlbXAgPSBJ OTE1X1JFQUQoaW50ZWxfaGRtaS0+aGRtaV9yZWcpOwogCiAJdGVtcCB8PSBTRFZPX0VOQUJMRTsK LQlpZiAoY3J0Yy0+Y29uZmlnLT5oYXNfYXVkaW8pCisJaWYgKHBpcGVfY29uZmlnLT5oYXNfYXVk aW8pCiAJCXRlbXAgfD0gU0RWT19BVURJT19FTkFCTEU7CiAKIAkvKgpAQCAtMTA2Niw3ICsxMDY1 LDcgQEAgc3RhdGljIHZvaWQgY3B0X2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5i YXNlLmNydGMpOwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVs X2hkbWkoJmVuY29kZXItPmJhc2UpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1 MzIgdGVtcDsKQEAgLTExMjgsNyArMTEyNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVf aGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5j X3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAl1MzIg dGVtcDsKIAogCXRlbXAgPSBJOTE1X1JFQUQoaW50ZWxfaGRtaS0+aGRtaV9yZWcpOwpAQCAtMTE3 MCw3ICsxMTY5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9oZG1pKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCQlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0 aW5nKGRldl9wcml2LCBQSVBFX0EsIHRydWUpOwogCX0KIAotCWludGVsX2hkbWktPnNldF9pbmZv ZnJhbWVzKCZlbmNvZGVyLT5iYXNlLCBmYWxzZSwgTlVMTCk7CisJaW50ZWxfaGRtaS0+c2V0X2lu Zm9mcmFtZXMoJmVuY29kZXItPmJhc2UsIGZhbHNlLCBvbGRfY3J0Y19zdGF0ZSwgb2xkX2Nvbm5f c3RhdGUpOwogCiAJaW50ZWxfZHBfZHVhbF9tb2RlX3NldF90bWRzX291dHB1dChpbnRlbF9oZG1p LCBmYWxzZSk7CiB9CkBAIC0xNjQyLDEzICsxNjQxLDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX2hk bWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgIHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9oZG1p ICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwotCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7CiAKLQlpbnRlbF9oZG1pX3ByZXBhcmUoZW5jb2Rlcik7CisJaW50 ZWxfaGRtaV9wcmVwYXJlKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKIAogCWludGVsX2hkbWktPnNl dF9pbmZvZnJhbWVzKCZlbmNvZGVyLT5iYXNlLAogCQkJCSAgIHBpcGVfY29uZmlnLT5oYXNfaGRt aV9zaW5rLAotCQkJCSAgIGFkanVzdGVkX21vZGUpOworCQkJCSAgIHBpcGVfY29uZmlnLCBjb25u X3N0YXRlKTsKIH0KIAogc3RhdGljIHZvaWQgdmx2X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKQEAgLTE2NTksNyArMTY1Nyw2IEBAIHN0YXRpYyB2b2lkIHZs dl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0 IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSAmZHBvcnQtPmhkbWk7CiAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwogCiAJdmx2 X3BoeV9wcmVfZW5jb2Rlcl9lbmFibGUoZW5jb2Rlcik7CiAKQEAgLTE2NjksNyArMTY2Niw3IEBA IHN0YXRpYyB2b2lkIHZsdl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAKIAlpbnRlbF9oZG1pLT5zZXRfaW5mb2ZyYW1lcygmZW5jb2Rlci0+YmFzZSwKIAkJ CQkgICBwaXBlX2NvbmZpZy0+aGFzX2hkbWlfc2luaywKLQkJCQkgICBhZGp1c3RlZF9tb2RlKTsK KwkJCQkgICBwaXBlX2NvbmZpZywgY29ubl9zdGF0ZSk7CiAKIAlnNHhfZW5hYmxlX2hkbWkoZW5j b2RlciwgcGlwZV9jb25maWcsIGNvbm5fc3RhdGUpOwogCkBAIC0xNjgwLDcgKzE2NzcsNyBAQCBz dGF0aWMgdm9pZCB2bHZfaGRtaV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAog CQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKLQlpbnRl bF9oZG1pX3ByZXBhcmUoZW5jb2Rlcik7CisJaW50ZWxfaGRtaV9wcmVwYXJlKGVuY29kZXIsIHBp cGVfY29uZmlnKTsKIAogCXZsdl9waHlfcHJlX3BsbF9lbmFibGUoZW5jb2Rlcik7CiB9CkBAIC0x Njg5LDcgKzE2ODYsNyBAQCBzdGF0aWMgdm9pZCBjaHZfaGRtaV9wcmVfcGxsX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29u bl9zdGF0ZSkKIHsKLQlpbnRlbF9oZG1pX3ByZXBhcmUoZW5jb2Rlcik7CisJaW50ZWxfaGRtaV9w cmVwYXJlKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKIAogCWNodl9waHlfcHJlX3BsbF9lbmFibGUo ZW5jb2Rlcik7CiB9CkBAIC0xNzMyLDkgKzE3MjksNiBAQCBzdGF0aWMgdm9pZCBjaHZfaGRtaV9w cmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9o ZG1pICppbnRlbF9oZG1pID0gJmRwb3J0LT5oZG1pOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBlbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQotCQl0b19p bnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGU7CiAKIAljaHZfcGh5X3ByZV9lbmNvZGVyX2VuYWJsZShlbmNvZGVyKTsKIApAQCAtMTc0 Myw4ICsxNzM3LDggQEAgc3RhdGljIHZvaWQgY2h2X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAljaHZfc2V0X3BoeV9zaWduYWxfbGV2ZWwoZW5jb2Rlciwg MTI4LCAxMDIsIGZhbHNlKTsKIAogCWludGVsX2hkbWktPnNldF9pbmZvZnJhbWVzKCZlbmNvZGVy LT5iYXNlLAotCQkJCSAgIGludGVsX2NydGMtPmNvbmZpZy0+aGFzX2hkbWlfc2luaywKLQkJCQkg ICBhZGp1c3RlZF9tb2RlKTsKKwkJCQkgICBwaXBlX2NvbmZpZy0+aGFzX2hkbWlfc2luaywKKwkJ CQkgICBwaXBlX2NvbmZpZywgY29ubl9zdGF0ZSk7CiAKIAlnNHhfZW5hYmxlX2hkbWkoZW5jb2Rl ciwgcGlwZV9jb25maWcsIGNvbm5fc3RhdGUpOwogCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK