From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Starkey Subject: [RFC PATCH v2 1/9] drm: Add writeback connector type Date: Wed, 26 Oct 2016 09:55:00 +0100 Message-ID: <1477472108-27222-2-git-send-email-brian.starkey@arm.com> References: <1477472108-27222-1-git-send-email-brian.starkey@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id 9AC516E811 for ; Wed, 26 Oct 2016 08:55:30 +0000 (UTC) In-Reply-To: <1477472108-27222-1-git-send-email-brian.starkey@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org V3JpdGViYWNrIGNvbm5lY3RvcnMgcmVwcmVzZW50IHdyaXRlYmFjayBlbmdpbmVzIHdoaWNoIGNh biB3cml0ZSB0aGUKQ1JUQyBvdXRwdXQgdG8gYSBtZW1vcnkgZnJhbWVidWZmZXIuIEFkZCBhIHdy aXRlYmFjayBjb25uZWN0b3IgdHlwZSBhbmQKcmVsYXRlZCBzdXBwb3J0IGZ1bmN0aW9ucy4KCkRy aXZlcnMgc2hvdWxkIGluaXRpYWxpemUgYSB3cml0ZWJhY2sgY29ubmVjdG9yIHdpdGgKZHJtX3dy aXRlYmFja19jb25uZWN0b3JfaW5pdCgpIHdoaWNoIHRha2VzIGNhcmUgb2Ygc2V0dGluZyB1cCBh bGwgdGhlCndyaXRlYmFjay1zcGVjaWZpYyBkZXRhaWxzIG9uIHRvcCBvZiB0aGUgbm9ybWFsIGZ1 bmN0aW9uYWxpdHkgb2YKZHJtX2Nvbm5lY3Rvcl9pbml0KCkuCgpXcml0ZWJhY2sgY29ubmVjdG9y cyBoYXZlIGEgV1JJVEVCQUNLX0ZCX0lEIHByb3BlcnR5LCB1c2VkIHRvIHNldCB0aGUKb3V0cHV0 IGZyYW1lYnVmZmVyLCBQSVhFTF9GT1JNQVRTIGFuZCBQSVhFTF9GT1JNQVRTX1NJWkUgdXNlZCB0 byBleHBvc2UKdGhlIHN1cHBvcnRlZCB3cml0ZWJhY2sgZm9ybWF0cyB0byB1c2Vyc3BhY2UuCgpU aGUgZHJtX2F0b21pYyBjb3JlIHRha2VzIGNhcmUgb2YgZW5mb3JjaW5nIGZhaXJseSBzdHJpY3Qg c2VtYW50aWNzIG9uCnRoZSB1c2Ugb2Ygd3JpdGViYWNrIGNvbm5lY3RvcnMuIEluIHNob3J0LCBh IHdyaXRlYmFjayBjb25uZWN0b3IgY2FuCm9ubHkgYmUgaW5jbHVkZWQgaW4gYSBjb21taXQgaWYg aXQgaGFzIGJvdGggYSBmcmFtZWJ1ZmZlciBhbmQgYSBDUlRDLgpDb252ZXJzZWx5LCB5b3UgbWF5 IG5vdCBhdHRhY2ggYSBmcmFtZWJ1ZmZlciBpZiB0aGUgY29ubmVjdG9yIGlzIG5vdAphdHRhY2hl ZCB0byBhIENSVEMsIG9yIGlmIHRoZSBDUlRDIGlzIGRpc2FibGVkLgoKV2hlbiBhIGZyYW1lYnVm ZmVyIGlzIGF0dGFjaGVkIHRvIGEgd3JpdGViYWNrIGNvbm5lY3RvciB3aXRoIHRoZQpXUklURUJB Q0tfRkJfSUQgcHJvcGVydHksIGl0IGlzIHVzZWQgb25seSBvbmNlIChmb3IgdGhlIGNvbW1pdCBp biB3aGljaAppdCB3YXMgaW5jbHVkZWQpLCBhbmQgdXNlcnNwYWNlIGNhbiBuZXZlciByZWFkIGJh Y2sgdGhlIHZhbHVlIG9mCldSSVRFQkFDS19GQl9JRC4KCkNoYW5nZXMgc2luY2UgdjE6CiAtIEFk ZGVkIGRybV93cml0ZWJhY2suYyArIGRvY3VtZW50YXRpb24KIC0gQWRkZWQgaGVscGVyIHRvIGlu aXRpYWxpemUgd3JpdGViYWNrIGNvbm5lY3RvciBpbiBvbmUgZ28KIC0gQWRkZWQgY29yZSBjaGVj a3MKIC0gU3F1YXNoZWQgaW50byBhIHNpbmdsZSBjb21taXQKIC0gRHJvcHBlZCB0aGUgY2xpZW50 IGNhcAogLSBXcml0ZWJhY2sgZnJhbWVidWZmZXJzIGFyZSBubyBsb25nZXIgcGVyc2lzdGVudAoK U2lnbmVkLW9mZi1ieTogQnJpYW4gU3RhcmtleSA8YnJpYW4uc3RhcmtleUBhcm0uY29tPgotLS0K IERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0ICAgICAgIHwgICAgOSArKwogZHJpdmVycy9n cHUvZHJtL01ha2VmaWxlICAgICAgICAgICAgfCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jICAgICAgICB8ICAgOTUgKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8ICAgIDUgKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1f Y29ubmVjdG9yLmMgICAgIHwgICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2RybV93cml0ZWJhY2su YyAgICAgfCAgMTU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRl L2RybS9kcm1fYXRvbWljLmggICAgICAgICAgICB8ICAgIDMgKwogaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oICAgICAgICAgfCAgIDEyICsrKwogaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAg ICAgICAgICAgfCAgIDIwICsrKysrCiBpbmNsdWRlL2RybS9kcm1fd3JpdGViYWNrLmggICAgICAg ICB8ICAgMTkgKysrKysKIGluY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCAgICAgICAgIHwgICAg MSArCiAxMSBmaWxlcyBjaGFuZ2VkLCAzMjUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX3dyaXRlYmFjay5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0vZHJtX3dyaXRlYmFjay5oCgpkaWZmIC0tZ2l0IGEv RG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21z LnJzdAppbmRleCA1M2I4NzJjLi5jM2QwMzcwIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dw dS9kcm0ta21zLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLnJzdApAQCAtMTQ5 LDYgKzE0OSwxNSBAQCBDb25uZWN0b3IgRnVuY3Rpb25zIFJlZmVyZW5jZQogLi4ga2VybmVsLWRv Yzo6IGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKICAgIDpleHBvcnQ6CiAKK1dyaXRl YmFjayBDb25uZWN0b3JzCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBrZXJuZWwtZG9jOjog ZHJpdmVycy9ncHUvZHJtL2RybV93cml0ZWJhY2suYworICA6ZG9jOiBvdmVydmlldworCisuLiBr ZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV93cml0ZWJhY2suYworICA6ZXhwb3J0Ogor CiBFbmNvZGVyIEFic3RyYWN0aW9uCiA9PT09PT09PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQppbmRl eCAyNWM3MjA0Li4yZGM0YTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUK KysrIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCkBAIC0xNSw3ICsxNSw3IEBAIGRybS15ICAg ICAgIDo9CWRybV9hdXRoLm8gZHJtX2J1ZnMubyBkcm1fY2FjaGUubyBcCiAJCWRybV9tb2Rlc2V0 X2xvY2subyBkcm1fYXRvbWljLm8gZHJtX2JyaWRnZS5vIFwKIAkJZHJtX2ZyYW1lYnVmZmVyLm8g ZHJtX2Nvbm5lY3Rvci5vIGRybV9ibGVuZC5vIFwKIAkJZHJtX2VuY29kZXIubyBkcm1fbW9kZV9v YmplY3QubyBkcm1fcHJvcGVydHkubyBcCi0JCWRybV9wbGFuZS5vIGRybV9jb2xvcl9tZ210Lm8K KwkJZHJtX3BsYW5lLm8gZHJtX2NvbG9yX21nbXQubyBkcm1fd3JpdGViYWNrLm8KIAogZHJtLSQo Q09ORklHX0NPTVBBVCkgKz0gZHJtX2lvYzMyLm8KIGRybS0kKENPTkZJR19EUk1fR0VNX0NNQV9I RUxQRVIpICs9IGRybV9nZW1fY21hX2hlbHBlci5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwppbmRleCBmZTM3 OTg3Li5mNDM0ZjM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKQEAgLTYxMiw2ICs2MTIsNDQgQEAgc3Rh dGljIGludCBkcm1fYXRvbWljX2NydGNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAogfQog CiAvKioKKyAqIGRybV9hdG9taWNfY29ubmVjdG9yX2NoZWNrIC0gY2hlY2sgY29ubmVjdG9yIHN0 YXRlCisgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gY2hlY2sKKyAqIEBzdGF0ZTogY29ubmVj dG9yIHN0YXRlIHRvIGNoZWNrCisgKgorICogUHJvdmlkZXMgY29yZSBzYW5pdHkgY2hlY2tzIGZv ciBjb25uZWN0b3Igc3RhdGUuCisgKgorICogUkVUVVJOUzoKKyAqIFplcm8gb24gc3VjY2Vzcywg ZXJyb3IgY29kZSBvbiBmYWlsdXJlCisgKi8KK3N0YXRpYyBpbnQgZHJtX2F0b21pY19jb25uZWN0 b3JfY2hlY2soc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZTsKKworCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5F Q1RPUl9XUklURUJBQ0spCisJCXJldHVybiAwOworCisJaWYgKCFzdGF0ZS0+ZmIgIT0gIXN0YXRl LT5jcnRjKSB7CisJCURSTV9ERUJVR19BVE9NSUMoIltDT05ORUNUT1I6JWQ6JXNdIGZyYW1lYnVm ZmVyL0NSVEMgbWlzbWF0Y2hcbiIsCisJCQkJIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9y LT5uYW1lKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHN0YXRlLT5jcnRjKQorCQlj cnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZS0+c3Rh dGUsCisJCQkJCQkJCXN0YXRlLT5jcnRjKTsKKworCWlmIChzdGF0ZS0+ZmIgJiYgIWNydGNfc3Rh dGUtPmFjdGl2ZSkgeworCQlEUk1fREVCVUdfQVRPTUlDKCJbQ09OTkVDVE9SOiVkOiVzXSBoYXMg ZnJhbWVidWZmZXIsIGJ1dCBbQ1JUQzolZF0gaXMgb2ZmXG4iLAorCQkJCSBjb25uZWN0b3ItPmJh c2UuaWQsIGNvbm5lY3Rvci0+bmFtZSwKKwkJCQkgc3RhdGUtPmNydGMtPmJhc2UuaWQpOworCQly ZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoqCiAgKiBkcm1fYXRvbWlj X2dldF9wbGFuZV9zdGF0ZSAtIGdldCBwbGFuZSBzdGF0ZQogICogQHN0YXRlOiBnbG9iYWwgYXRv bWljIHN0YXRlIG9iamVjdAogICogQHBsYW5lOiBwbGFuZSB0byBnZXQgc3RhdGUgb2JqZWN0IGZv cgpAQCAtMTAwNCwxMiArMTA0MiwxOSBAQCBpbnQgZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3By b3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCSAqIG5vdz8pIGF0b21p YyB3cml0ZXMgdG8gRFBNUyBwcm9wZXJ0eToKIAkJICovCiAJCXJldHVybiAtRUlOVkFMOworCX0g ZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT53cml0ZWJhY2tfZmJfaWRfcHJvcGVydHkpIHsK KwkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3VwKGRl diwgdmFsKTsKKwkJZHJtX2F0b21pY19zZXRfZmJfZm9yX2Nvbm5lY3RvcihzdGF0ZSwgZmIpOwor CQlpZiAoZmIpCisJCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoZmIpOwogCX0gZWxzZSBp ZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewogCQlyZXR1cm4gY29u bmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eShjb25uZWN0b3IsCiAJCQkJc3RhdGUs IHByb3BlcnR5LCB2YWwpOwogCX0gZWxzZSB7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KKworCXJl dHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVy dHkpOwogCkBAIC0xMDQwLDYgKzEwODUsOSBAQCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9nZXRfcHJv cGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJKnZhbCA9IChzdGF0ZS0+ Y3J0YykgPyBzdGF0ZS0+Y3J0Yy0+YmFzZS5pZCA6IDA7CiAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9 PSBjb25maWctPmRwbXNfcHJvcGVydHkpIHsKIAkJKnZhbCA9IGNvbm5lY3Rvci0+ZHBtczsKKwl9 IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+d3JpdGViYWNrX2ZiX2lkX3Byb3BlcnR5KSB7 CisJCS8qIFdyaXRlYmFjayBmcmFtZWJ1ZmZlciBpcyBvbmUtc2hvdCwgd3JpdGUgYW5kIGZvcmdl dCAqLworCQkqdmFsID0gMDsKIAl9IGVsc2UgaWYgKGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19n ZXRfcHJvcGVydHkpIHsKIAkJcmV0dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19nZXRfcHJv cGVydHkoY29ubmVjdG9yLAogCQkJCXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKQEAgLTEyMjMsNiAr MTI3MSw0MiBAQCBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9jb25uZWN0b3Ioc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsCiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc2V0 X2NydGNfZm9yX2Nvbm5lY3Rvcik7CiAKIC8qKgorICogZHJtX2F0b21pY19zZXRfZmJfZm9yX2Nv bm5lY3RvciAtIHNldCBmcmFtZWJ1ZmZlciBmb3IgKHdyaXRlYmFjaykgY29ubmVjdG9yCisgKiBA Y29ubl9zdGF0ZTogYXRvbWljIHN0YXRlIG9iamVjdCBmb3IgdGhlIGNvbm5lY3RvcgorICogQGZi OiBmYiB0byB1c2UgZm9yIHRoZSBjb25uZWN0b3IKKyAqCisgKiBUaGlzIGlzIHVzZWQgdG8gc2V0 IHRoZSBmcmFtZWJ1ZmZlciBmb3IgYSB3cml0ZWJhY2sgY29ubmVjdG9yLCB3aGljaCBvdXRwdXRz CisgKiB0byBhIGJ1ZmZlciBpbnN0ZWFkIG9mIGFuIGFjdHVhbCBwaHlzaWNhbCBjb25uZWN0b3Iu CisgKiBDaGFuZ2luZyB0aGUgYXNzaWduZWQgZnJhbWVidWZmZXIgcmVxdWlyZXMgdXMgdG8gZ3Jh YiBhIHJlZmVyZW5jZSB0byB0aGUgbmV3CisgKiBmYiBhbmQgZHJvcCB0aGUgcmVmZXJlbmNlIHRv IHRoZSBvbGQgZmIsIGlmIHRoZXJlIGlzIG9uZS4gVGhpcyBmdW5jdGlvbgorICogdGFrZXMgY2Fy ZSBvZiBhbGwgdGhlc2UgZGV0YWlscyBiZXNpZGVzIHVwZGF0aW5nIHRoZSBwb2ludGVyIGluIHRo ZQorICogc3RhdGUgb2JqZWN0IGl0c2VsZi4KKyAqCisgKiBOb3RlOiBUaGUgb25seSB3YXkgY29u bl9zdGF0ZSBjYW4gYWxyZWFkeSBoYXZlIGFuIGZiIHNldCBpcyBpZiB0aGUgY29tbWl0CisgKiBz ZXRzIHRoZSBwcm9wZXJ0eSBtb3JlIHRoYW4gb25jZS4KKyAqCisgKiBTZWUgYWxzbyBET0M6IG92 ZXJ2aWV3IGluIGRybV93cml0ZWJhY2suYworICovCit2b2lkCitkcm1fYXRvbWljX3NldF9mYl9m b3JfY29ubmVjdG9yKHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAorCQkJ CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQoreworCWlmIChjb25uX3N0YXRlLT5mYikKKwkJ ZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGNvbm5fc3RhdGUtPmZiKTsKKwlpZiAoZmIpCisJ CWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2UoZmIpOworCWNvbm5fc3RhdGUtPmZiID0gZmI7CisK KwlpZiAoZmIpCisJCURSTV9ERUJVR19BVE9NSUMoIlNldCBbRkI6JWRdIGZvciBjb25uZWN0b3Ig c3RhdGUgJXBcbiIsCisJCQkJIGZiLT5iYXNlLmlkLCBjb25uX3N0YXRlKTsKKwllbHNlCisJCURS TV9ERUJVR19BVE9NSUMoIlNldCBbTk9GQl0gZm9yIGNvbm5lY3RvciBzdGF0ZSAlcFxuIiwKKwkJ CQkgY29ubl9zdGF0ZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc2V0X2ZiX2Zvcl9j b25uZWN0b3IpOworCisvKioKICAqIGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX2Nvbm5lY3RvcnMg LSBhZGQgY29ubmVjdG9ycyBmb3IgY3J0YwogICogQHN0YXRlOiBhdG9taWMgc3RhdGUKICAqIEBj cnRjOiBEUk0gY3J0YwpAQCAtMTM3Niw2ICsxNDYwLDggQEAgaW50IGRybV9hdG9taWNfY2hlY2tf b25seShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGU7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKKwlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKIAlpbnQgaSwgcmV0ID0gMDsK IAogCURSTV9ERUJVR19BVE9NSUMoImNoZWNraW5nICVwXG4iLCBzdGF0ZSk7CkBAIC0xMzk4LDYg KzE0ODQsMTUgQEAgaW50IGRybV9hdG9taWNfY2hlY2tfb25seShzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCiAJCX0KIAl9CiAKKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUoc3Rh dGUsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKKwkJcmV0ID0gZHJtX2F0b21pY19jb25uZWN0b3Jf Y2hlY2soY29ubiwgY29ubl9zdGF0ZSk7CisJCWlmIChyZXQpIHsKKwkJCURSTV9ERUJVR19BVE9N SUMoIltDT05ORUNUT1I6JWQ6JXNdIGF0b21pYyBjb3JlIGNoZWNrIGZhaWxlZFxuIiwKKwkJCQkJ IGNvbm4tPmJhc2UuaWQsIGNvbm4tPm5hbWUpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKwog CWlmIChjb25maWctPmZ1bmNzLT5hdG9taWNfY2hlY2spCiAJCXJldCA9IGNvbmZpZy0+ZnVuY3Mt PmF0b21pY19jaGVjayhzdGF0ZS0+ZGV2LCBzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKaW5kZXggMmM0NGRlMy4uYmJhODY3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKQEAgLTMyMzMsNiArMzIzMyw5IEBAIF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVj dG9yX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCW1l bWNweShzdGF0ZSwgY29ubmVjdG9yLT5zdGF0ZSwgc2l6ZW9mKCpzdGF0ZSkpOwogCWlmIChzdGF0 ZS0+Y3J0YykKIAkJZHJtX2Nvbm5lY3Rvcl9yZWZlcmVuY2UoY29ubmVjdG9yKTsKKworCS8qIERv bid0IGNvcHkgb3ZlciBmcmFtZWJ1ZmZlcnMsIHRoZXkgYXJlIHVzZWQgb25seSBvbmNlICovCisJ c3RhdGUtPmZiID0gTlVMTDsKIH0KIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9j b25uZWN0b3JfZHVwbGljYXRlX3N0YXRlKTsKIApAQCAtMzM2MCw2ICszMzYzLDggQEAgX19kcm1f YXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqc3RhdGUpCiAJICovCiAJaWYgKHN0YXRlLT5jcnRjKQogCQlkcm1fY29ubmVjdG9y X3VucmVmZXJlbmNlKHN0YXRlLT5jb25uZWN0b3IpOworCWlmIChzdGF0ZS0+ZmIpCisJCWRybV9m cmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShzdGF0ZS0+ZmIpOwogfQogRVhQT1JUX1NZTUJPTChfX2Ry bV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKTsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29u bmVjdG9yLmMKaW5kZXggMmRiN2ZiNS4uZTY3MDg0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9jb25uZWN0b3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5j CkBAIC04Niw2ICs4Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5fcHJvcF9lbnVtX2xpc3Qg ZHJtX2Nvbm5lY3Rvcl9lbnVtX2xpc3RbXSA9IHsKIAl7IERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJU VUFMLCAiVmlydHVhbCIgfSwKIAl7IERSTV9NT0RFX0NPTk5FQ1RPUl9EU0ksICJEU0kiIH0sCiAJ eyBEUk1fTU9ERV9DT05ORUNUT1JfRFBJLCAiRFBJIiB9LAorCXsgRFJNX01PREVfQ09OTkVDVE9S X1dSSVRFQkFDSywgIldyaXRlYmFjayIgfSwKIH07CiAKIHZvaWQgZHJtX2Nvbm5lY3Rvcl9pZGFf aW5pdCh2b2lkKQpAQCAtMjM1LDcgKzIzNiw4IEBAIGludCBkcm1fY29ubmVjdG9yX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAlsaXN0X2FkZF90YWlsKCZjb25uZWN0b3ItPmhlYWQsICZj b25maWctPmNvbm5lY3Rvcl9saXN0KTsKIAljb25maWctPm51bV9jb25uZWN0b3IrKzsKIAotCWlm IChjb25uZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfVklSVFVBTCkKKwlpZiAoKGNv bm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMKSAmJgorCSAgICAoY29u bmVjdG9yX3R5cGUgIT0gRFJNX01PREVfQ09OTkVDVE9SX1dSSVRFQkFDSykpCiAJCWRybV9vYmpl Y3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCiAJCQkJCSAgICAgIGNvbmZpZy0+ ZWRpZF9wcm9wZXJ0eSwKIAkJCQkJICAgICAgMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX3dyaXRlYmFjay5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV93cml0ZWJhY2suYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTZlMGFkCi0tLSAvZGV2L251bGwKKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV93cml0ZWJhY2suYwpAQCAtMCwwICsxLDE1NyBAQAorLyoK KyAqIChDKSBDT1BZUklHSFQgMjAxNiBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K KyAqIEF1dGhvcjogQnJpYW4gU3RhcmtleSA8YnJpYW4uc3RhcmtleUBhcm0uY29tPgorICoKKyAq IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlIGFuZCBpcyBwcm92aWRlZCB0byB5b3UgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lv biAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgYW5k IGFueSB1c2UgYnkgeW91IG9mIHRoaXMgcHJvZ3JhbSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcwor ICogb2Ygc3VjaCBHTlUgbGljZW5jZS4KKyAqLworCisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+ CisjaW5jbHVkZSA8ZHJtL2RybV9wcm9wZXJ0eS5oPgorI2luY2x1ZGUgPGRybS9kcm1QLmg+CisK Ky8qKgorICogRE9DOiBvdmVydmlldworICoKKyAqIFdyaXRlYmFjayBjb25uZWN0b3JzIGFyZSB1 c2VkIHRvIGV4cG9zZSBoYXJkd2FyZSB3aGljaCBjYW4gd3JpdGUgdGhlIG91dHB1dAorICogZnJv bSBhIENSVEMgdG8gYSBtZW1vcnkgYnVmZmVyLiBUaGV5IGFyZSB1c2VkIGFuZCBhY3Qgc2ltaWxh cmx5IHRvIG90aGVyCisgKiB0eXBlcyBvZiBjb25uZWN0b3JzLCB3aXRoIHNvbWUgaW1wb3J0YW50 IGRpZmZlcmVuY2VzOgorICogIC0gV3JpdGViYWNrIGNvbm5lY3RvcnMgZG9uJ3QgcHJvdmlkZSBh IHdheSB0byBvdXRwdXQgdmlzdWFsbHkgdG8gdGhlIHVzZXIuCisgKiAgLSBXcml0ZWJhY2sgY29u bmVjdG9ycyBzaG91bGQgYWx3YXlzIHJlcG9ydCBhcyAiZGlzY29ubmVjdGVkIiAoc28gdGhhdAor ICogICAgY2xpZW50cyB3aGljaCBkb24ndCB1bmRlcnN0YW5kIHRoZW0gd2lsbCBpZ25vcmUgdGhl bSkuCisgKiAgLSBXcml0ZWJhY2sgY29ubmVjdG9ycyBkb24ndCBoYXZlIEVESUQuCisgKgorICog V3JpdGViYWNrIGNvbm5lY3RvcnMgbWF5IG9ubHkgYmUgYXR0YWNoZWQgdG8gYSBDUlRDIHdoZW4g dGhleSBoYXZlIGEKKyAqIGZyYW1lYnVmZmVyIGF0dGFjaGVkLCBhbmQgbWF5IG9ubHkgaGF2ZSBh IGZyYW1lYnVmZmVyIGF0dGFjaGVkIHdoZW4gdGhleSBhcmUKKyAqIGF0dGFjaGVkIHRvIGEgQ1JU Qy4gVGhlIFdSSVRFQkFDS19GQl9JRCBwcm9wZXJ0eSB3aGljaCBzZXRzIHRoZSBmcmFtZWJ1ZmZl cgorICogYXBwbGllcyBvbmx5IHRvIGEgc2luZ2xlIGNvbW1pdCAoc2VlIGJlbG93KSwgd2hpY2gg bWVhbnMgdGhhdCBlYWNoIGFuZCBldmVyeQorICogY29tbWl0IHdoaWNoIG1ha2VzIHVzZSBvZiBh IHdyaXRlYmFjayBjb25uZWN0b3IgbXVzdCBzZXQgYm90aCBpdHMgQ1JUQ19JRCBhbmQKKyAqIFdS SVRFQkFDS19GQl9JRC4gSXQgYWxzbyBtZWFucyB0aGF0IHRoZSBjb25uZWN0b3IncyBDUlRDX0lE IG11c3QgYmUKKyAqIGV4cGxpY2l0bHkgY2xlYXJlZCBpbiBvcmRlciB0byBtYWtlIGEgc3Vic2Vx dWVudCBjb21taXQgd2hpY2ggZG9lc24ndCB1c2UKKyAqIHdyaXRlYmFjay4KKyAqCisgKiBXcml0 ZWJhY2sgY29ubmVjdG9ycyBoYXZlIHNldmVyYWwgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCB3aGlj aCB1c2Vyc3BhY2UKKyAqIGNhbiB1c2UgdG8gcXVlcnkgYW5kIGNvbnRyb2wgdGhlbToKKyAqCisg KiAgIldSSVRFQkFDS19GQl9JRCI6CisgKglXcml0ZS1vbmx5IG9iamVjdCBwcm9wZXJ0eSBzdG9y aW5nIGEgRFJNX01PREVfT0JKRUNUX0ZCOiBpdCBzdG9yZXMgdGhlCisgKglmcmFtZWJ1ZmZlciB0 byBiZSB3cml0dGVuIGJ5IHRoZSB3cml0ZWJhY2sgY29ubmVjdG9yLiBUaGlzIHByb3BlcnR5IGlz CisgKglzaW1pbGFyIHRvIHRoZSBGQl9JRCBwcm9wZXJ0eSBvbiBwbGFuZXMsIGJ1dCB3aWxsIGFs d2F5cyByZWFkIGFzIHplcm8KKyAqCWFuZCBpcyBub3QgcHJlc2VydmVkIGFjcm9zcyBjb21taXRz LgorICoJVXNlcnNwYWNlIG11c3Qgc2V0IHRoaXMgcHJvcGVydHkgdG8gYW4gb3V0cHV0IGJ1ZmZl ciBldmVyeSB0aW1lIGl0CisgKgl3aXNoZXMgdGhlIGJ1ZmZlciB0byBnZXQgZmlsbGVkLgorICoK KyAqICAiUElYRUxfRk9STUFUUyI6CisgKglJbW11dGFibGUgYmxvYiBwcm9wZXJ0eSB0byBzdG9y ZSB0aGUgc3VwcG9ydGVkIHBpeGVsIGZvcm1hdHMgdGFibGUuIFRoZQorICoJZGF0YSBpcyBhbiBh cnJheSBvZiB1MzIgRFJNX0ZPUk1BVF8qIGZvdXJjYyB2YWx1ZXMuCisgKglVc2Vyc3BhY2UgY2Fu IHVzZSB0aGlzIGJsb2IgdG8gZmluZCBvdXQgd2hhdCBwaXhlbCBmb3JtYXRzIGFyZSBzdXBwb3J0 ZWQKKyAqCWJ5IHRoZSBjb25uZWN0b3IncyB3cml0ZWJhY2sgZW5naW5lLgorICoKKyAqICAiUElY RUxfRk9STUFUU19TSVpFIjoKKyAqCUltbXV0YWJsZSB1bnNpZ25lZCByYW5nZSBwcm9wZXJ0eSBz dG9yaW5nIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUKKyAqCVBJWEVMX0ZPUk1BVFMgYXJy YXkuCisgKi8KKworLyoqCisgKiBjcmVhdGVfd3JpdGViYWNrX3Byb3BlcnRpZXMgLSBDcmVhdGUg d3JpdGViYWNrIGNvbm5lY3Rvci1zcGVjaWZpYyBwcm9wZXJ0aWVzCisgKiBAZGV2OiBEUk0gZGV2 aWNlCisgKgorICogQ3JlYXRlIHRoZSBwcm9wZXJ0aWVzIHNwZWNpZmljIHRvIHdyaXRlYmFjayBj b25uZWN0b3JzLiBUaGVzZSB3aWxsIGJlCisgKiBhdHRhY2hlZCB0byB0aGUgY29ubmVjdG9yIGFu ZCBpbml0aWFsaXNlZCBieSBkcm1fd3JpdGViYWNrX2Nvbm5lY3Rvcl9pbml0LgorICoKKyAqIFJl dHVybnM6IHRydWUgb24gc3VjY2Vzcywgb3IgZmFsc2UgaWYgYW55IHByb3BlcnR5IGNyZWF0aW9u IGZhaWxzLgorICovCitzdGF0aWMgYm9vbCBjcmVhdGVfd3JpdGViYWNrX3Byb3BlcnRpZXMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOworCisJ aWYgKCFkZXYtPm1vZGVfY29uZmlnLndyaXRlYmFja19mYl9pZF9wcm9wZXJ0eSkgeworCQlwcm9w ID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9vYmplY3QoZGV2LCBEUk1fTU9ERV9QUk9QX0FUT01JQywK KwkJCQkJCSAgIldSSVRFQkFDS19GQl9JRCIsCisJCQkJCQkgIERSTV9NT0RFX09CSkVDVF9GQik7 CisJCWlmICghcHJvcCkKKwkJCXJldHVybiBmYWxzZTsKKwkJZGV2LT5tb2RlX2NvbmZpZy53cml0 ZWJhY2tfZmJfaWRfcHJvcGVydHkgPSBwcm9wOworCX0KKworCWlmICghZGV2LT5tb2RlX2NvbmZp Zy5waXhlbF9mb3JtYXRzX3Byb3BlcnR5KSB7CisJCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRl KGRldiwgRFJNX01PREVfUFJPUF9CTE9CIHwgRFJNX01PREVfUFJPUF9JTU1VVEFCTEUsCisJCQkJ CSAgICJQSVhFTF9GT1JNQVRTIiwgMCk7CisJCWlmICghcHJvcCkKKwkJCXJldHVybiBmYWxzZTsK KwkJZGV2LT5tb2RlX2NvbmZpZy5waXhlbF9mb3JtYXRzX3Byb3BlcnR5ID0gcHJvcDsKKwl9CisK KwlpZiAoIWRldi0+bW9kZV9jb25maWcucGl4ZWxfZm9ybWF0c19zaXplX3Byb3BlcnR5KSB7CisJ CXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKGRldiwgRFJNX01PREVfUFJPUF9JTU1V VEFCTEUsCisJCQkJCQkgIlBJWEVMX0ZPUk1BVFNfU0laRSIsIDAsCisJCQkJCQkgVUlOVF9NQVgp OworCQlpZiAoIXByb3ApCisJCQlyZXR1cm4gZmFsc2U7CisJCWRldi0+bW9kZV9jb25maWcucGl4 ZWxfZm9ybWF0c19zaXplX3Byb3BlcnR5ID0gcHJvcDsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30K KworLyoqCisgKiBkcm1fd3JpdGViYWNrX2Nvbm5lY3Rvcl9pbml0IC0gSW5pdGlhbGl6ZSBhIHdy aXRlYmFjayBjb25uZWN0b3IgYW5kIGl0cyBwcm9wZXJ0aWVzCisgKiBAZGV2OiBEUk0gZGV2aWNl CisgKiBAY29ubmVjdG9yOiBDb25uZWN0b3IgdG8gaW5pdGlhbGl6ZQorICogQGZ1bmNzOiBDb25u ZWN0b3IgZnVuY3MgdnRhYmxlCisgKiBAZm9ybWF0czogQXJyYXkgb2Ygc3VwcG9ydGVkIHBpeGVs IGZvcm1hdHMgZm9yIHRoZSB3cml0ZWJhY2sgZW5naW5lCisgKiBAbl9mb3JtYXRzOiBMZW5ndGgg b2YgdGhlIGZvcm1hdHMgYXJyYXkKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgdGhlIHdy aXRlYmFjay1jb25uZWN0b3Itc3BlY2lmaWMgcHJvcGVydGllcyBpZiB0aGV5CisgKiBoYXZlIG5v dCBiZWVuIGFscmVhZHkgY3JlYXRlZCwgaW5pdGlhbGl6ZXMgdGhlIGNvbm5lY3RvciBhcworICog dHlwZSBEUk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNLLCBhbmQgY29ycmVjdGx5IGluaXRpYWxp emVzIHRoZSBwcm9wZXJ0eQorICogdmFsdWVzLgorICoKKyAqIERyaXZlcnMgc2hvdWxkIGFsd2F5 cyB1c2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGRybV9jb25uZWN0b3JfaW5pdCgpIHRvCisg KiBzZXQgdXAgd3JpdGViYWNrIGNvbm5lY3RvcnMuCisgKgorICogUmV0dXJuczogMCBvbiBzdWNj ZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUKKyAqLworaW50IGRybV93cml0ZWJhY2tfY29u bmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3Mg KmZ1bmNzLAorCQkJCSB1MzIgKmZvcm1hdHMsIGludCBuX2Zvcm1hdHMpCit7CisJaW50IHJldDsK KwlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2I7CisJc3RydWN0IGRybV9tb2RlX2NvbmZp ZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7CisKKwlpZiAoIWNyZWF0ZV93cml0ZWJhY2tf cHJvcGVydGllcyhkZXYpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWJsb2IgPSBkcm1fcHJvcGVy dHlfY3JlYXRlX2Jsb2IoZGV2LCBuX2Zvcm1hdHMgKiBzaXplb2YoKmZvcm1hdHMpLAorCQkJCQlm b3JtYXRzKTsKKwlpZiAoSVNfRVJSKGJsb2IpKQorCQlyZXR1cm4gUFRSX0VSUihibG9iKTsKKwor CXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3RvciwgZnVuY3MsCisJCQkJIERS TV9NT0RFX0NPTk5FQ1RPUl9XUklURUJBQ0spOworCWlmIChyZXQpCisJCWdvdG8gZmFpbDsKKwor CWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCisJCQkJICAgY29u ZmlnLT53cml0ZWJhY2tfZmJfaWRfcHJvcGVydHksIDApOworCisJZHJtX29iamVjdF9hdHRhY2hf cHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKKwkJCQkgICBjb25maWctPnBpeGVsX2Zvcm1hdHNf cHJvcGVydHksCisJCQkJICAgYmxvYi0+YmFzZS5pZCk7CisJY29ubmVjdG9yLT5waXhlbF9mb3Jt YXRzX2Jsb2JfcHRyID0gYmxvYjsKKworCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25u ZWN0b3ItPmJhc2UsCisJCQkJICAgY29uZmlnLT5waXhlbF9mb3JtYXRzX3NpemVfcHJvcGVydHks CisJCQkJICAgbl9mb3JtYXRzKTsKKworCXJldHVybiAwOworCitmYWlsOgorCWRybV9wcm9wZXJ0 eV91bnJlZmVyZW5jZV9ibG9iKGJsb2IpOworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9M KGRybV93cml0ZWJhY2tfY29ubmVjdG9yX2luaXQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2F0b21pYy5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCmluZGV4IDk3MDFmMmQuLmQ5 YWZmMDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaAorKysgYi9pbmNsdWRl L2RybS9kcm1fYXRvbWljLmgKQEAgLTMxOSw2ICszMTksOSBAQCB2b2lkIGRybV9hdG9taWNfc2V0 X2ZiX2Zvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKIGludCBf X211c3RfY2hlY2sKIGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvcihzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKIAkJCQkgIHN0cnVjdCBkcm1fY3J0YyAqY3J0 Yyk7Cit2b2lkCitkcm1fYXRvbWljX3NldF9mYl9mb3JfY29ubmVjdG9yKHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAorCQkJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi KTsKIGludCBfX211c3RfY2hlY2sKIGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX2Nvbm5lY3RvcnMo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgIHN0cnVjdCBkcm1fY3J0YyAq Y3J0Yyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRl L2RybS9kcm1fY29ubmVjdG9yLmgKaW5kZXggYWM5ZDdkOC4uYTVlMzc3OCAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0 b3IuaApAQCAtMTk4LDYgKzE5OCw3IEBAIGludCBkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9y bWF0cyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbywKICAqIEBjb25uZWN0b3I6IGJhY2tw b2ludGVyIHRvIHRoZSBjb25uZWN0b3IKICAqIEBiZXN0X2VuY29kZXI6IGNhbiBiZSB1c2VkIGJ5 IGhlbHBlcnMgYW5kIGRyaXZlcnMgdG8gc2VsZWN0IHRoZSBlbmNvZGVyCiAgKiBAc3RhdGU6IGJh Y2twb2ludGVyIHRvIGdsb2JhbCBkcm1fYXRvbWljX3N0YXRlCisgKiBAZmI6IFdyaXRlYmFjayBm cmFtZWJ1ZmZlciwgZm9yIERSTV9NT0RFX0NPTk5FQ1RPUl9XUklURUJBQ0sKICAqLwogc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgewogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7 CkBAIC0yMTMsNiArMjE0LDggQEAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgewogCXN0cnVj dCBkcm1fZW5jb2RlciAqYmVzdF9lbmNvZGVyOwogCiAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlOworCisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7ICAvKiBkbyBub3Qgd3JpdGUg ZGlyZWN0bHksIHVzZSBkcm1fYXRvbWljX3NldF9mYl9mb3JfY29ubmVjdG9yKCkgKi8KIH07CiAK IC8qKgpAQCAtNjEyLDYgKzYxNSwxNSBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7CiAJICovCiAJ c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICp0aWxlX2Jsb2JfcHRyOwogCisJLyoqCisJICogQHBp eGVsX2Zvcm1hdHNfYmxvYl9wdHI6CisJICoKKwkgKiBEUk0gYmxvYiBwcm9wZXJ0eSBkYXRhIGZv ciB0aGUgcGl4ZWwgZm9ybWF0cyBsaXN0IG9uIHdyaXRlYmFjaworCSAqIGNvbm5lY3RvcnMKKwkg KiBTZWUgYWxzbyBET0M6IG92ZXJ2aWV3IGluIGRybV93cml0ZWJhY2suYworCSAqLworCXN0cnVj dCBkcm1fcHJvcGVydHlfYmxvYiAqcGl4ZWxfZm9ybWF0c19ibG9iX3B0cjsKKwogLyogc2hvdWxk IHdlIHBvbGwgdGhpcyBjb25uZWN0b3IgZm9yIGNvbm5lY3RzIGFuZCBkaXNjb25uZWN0cyAqLwog LyogaG90IHBsdWcgZGV0ZWN0YWJsZSAqLwogI2RlZmluZSBEUk1fQ09OTkVDVE9SX1BPTExfSFBE ICgxIDw8IDApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9k cm0vZHJtX2NydGMuaAppbmRleCBmZTIwZDhmLi4zNzhiYWVlMiAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9kcm0vZHJtX2NydGMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCkBAIC0xMzQ1LDYg KzEzNDUsMjYgQEAgc3RydWN0IGRybV9tb2RlX2NvbmZpZyB7CiAJICovCiAJc3RydWN0IGRybV9w cm9wZXJ0eSAqc3VnZ2VzdGVkX3lfcHJvcGVydHk7CiAKKwkvKioKKwkgKiBAd3JpdGViYWNrX2Zi X2lkX3Byb3BlcnR5OiBQcm9wZXJ0eSBmb3Igd3JpdGViYWNrIGNvbm5lY3RvcnMsIHN0b3JpbmcK KwkgKiB0aGUgSUQgb2YgdGhlIG91dHB1dCBmcmFtZWJ1ZmZlci4KKwkgKiBTZWUgYWxzbyBET0M6 IG92ZXJ2aWV3IGluIGRybV93cml0ZWJhY2suYworCSAqLworCXN0cnVjdCBkcm1fcHJvcGVydHkg KndyaXRlYmFja19mYl9pZF9wcm9wZXJ0eTsKKwkvKioKKwkgKiBAcGl4ZWxfZm9ybWF0c19wcm9w ZXJ0eTogUHJvcGVydHkgZm9yIHdyaXRlYmFjayBjb25uZWN0b3JzLCBzdG9yaW5nCisJICogYW4g YXJyYXkgb2YgdGhlIHN1cHBvcnRlZCBwaXhlbCBmb3JtYXRzIGZvciB0aGUgd3JpdGViYWNrIGVu Z2luZQorCSAqIChyZWFkLW9ubHkpLgorCSAqIFNlZSBhbHNvIERPQzogb3ZlcnZpZXcgaW4gZHJt X3dyaXRlYmFjay5jCisJICovCisJc3RydWN0IGRybV9wcm9wZXJ0eSAqcGl4ZWxfZm9ybWF0c19w cm9wZXJ0eTsKKwkvKioKKwkgKiBAcGl4ZWxfZm9ybWF0c19zaXplX3Byb3BlcnR5OiBQcm9wZXJ0 eSBmb3Igd3JpdGViYWNrIGNvbm5lY3RvcnMsCisJICogc3RhdGluZyB0aGUgc2l6ZSBvZiB0aGUg cGl4ZWwgZm9ybWF0cyBhcnJheSAocmVhZC1vbmx5KS4KKwkgKiBTZWUgYWxzbyBET0M6IG92ZXJ2 aWV3IGluIGRybV93cml0ZWJhY2suYworCSAqLworCXN0cnVjdCBkcm1fcHJvcGVydHkgKnBpeGVs X2Zvcm1hdHNfc2l6ZV9wcm9wZXJ0eTsKKwogCS8qIGR1bWIgaW9jdGwgcGFyYW1ldGVycyAqLwog CXVpbnQzMl90IHByZWZlcnJlZF9kZXB0aCwgcHJlZmVyX3NoYWRvdzsKIApkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX3dyaXRlYmFjay5oIGIvaW5jbHVkZS9kcm0vZHJtX3dyaXRlYmFjay5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmZGMyNzQyCi0tLSAvZGV2L251 bGwKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3dyaXRlYmFjay5oCkBAIC0wLDAgKzEsMTkgQEAKKy8q CisgKiAoQykgQ09QWVJJR0hUIDIwMTYgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu CisgKiBBdXRob3I6IEJyaWFuIFN0YXJrZXkgPGJyaWFuLnN0YXJrZXlAYXJtLmNvbT4KKyAqCisg KiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZSBhbmQgaXMgcHJvdmlkZWQgdG8geW91IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNp b24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGFu ZCBhbnkgdXNlIGJ5IHlvdSBvZiB0aGlzIHByb2dyYW0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMK KyAqIG9mIHN1Y2ggR05VIGxpY2VuY2UuCisgKi8KKworI2lmbmRlZiBfX0RSTV9XUklURUJBQ0tf SF9fCisjZGVmaW5lIF9fRFJNX1dSSVRFQkFDS19IX18KKworaW50IGRybV93cml0ZWJhY2tfY29u bmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3Mg KmZ1bmNzLAorCQkJCSB1MzIgKmZvcm1hdHMsIGludCBuX2Zvcm1hdHMpOworCisjZW5kaWYKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1ZGUvdWFwaS9kcm0v ZHJtX21vZGUuaAppbmRleCBkZjBlMzUwLi5lOWNiNGZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3Vh cGkvZHJtL2RybV9tb2RlLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCkBAIC0y NDcsNiArMjQ3LDcgQEAgc3RydWN0IGRybV9tb2RlX2dldF9lbmNvZGVyIHsKICNkZWZpbmUgRFJN X01PREVfQ09OTkVDVE9SX1ZJUlRVQUwgICAgICAxNQogI2RlZmluZSBEUk1fTU9ERV9DT05ORUNU T1JfRFNJCQkxNgogI2RlZmluZSBEUk1fTU9ERV9DT05ORUNUT1JfRFBJCQkxNworI2RlZmluZSBE Uk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNLCTE4CiAKIHN0cnVjdCBkcm1fbW9kZV9nZXRfY29u bmVjdG9yIHsKIAotLSAKMS43LjkuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==